FoxPro and Visual FoxPro are powerful database management systems and programming languages developed by Microsoft. Visual FoxPro was widely used for rapid application development from the early 1990s through 2007.
What You Can Upload
.DBFtable files.FPTmemo files.DBCdatabase container files (for long field names, primary keys and relationships).DCTand.DCXdatabase container memo and index files.CDXindex files (they say which fields each key and relationship is on)- ZIP archive with complete file sets
What You Get Out
DataMeans converts your data into multiple modern formats:
| Output | Description |
|---|---|
csv/{TableName}.csv | One CSV file per table with all row data |
xlsx/{TableName}.xlsx | Excel workbook per table (omitted for tables over 1,048,575 rows, 16,384 columns or 8,000,000 cells - see note below) |
xls/{TableName}.xls | Legacy Excel format per table (omitted for tables over 65,535 rows, 256 columns or 150,000 cells - see note below) |
json/{TableName}.json | JSON array of records per table |
json/{TableName}.jsonl | Newline-delimited JSON (streaming-friendly) |
postgres.sql | PostgreSQL CREATE TABLE + INSERT statements |
mysql.sql | The same schema and rows, in MySQL dialect |
sqlite.sql | The same schema and rows, in SQLite dialect |
ansi.sql | The same schema and rows, in portable ANSI SQL |
sqlserver.sql | The same schema and rows, in SQL Server (T-SQL) dialect |
report.json | Structured conversion report |
report.md | Human-readable conversion summary |
How to Export / Obtain Files
- Locate your FoxPro application's data directory
- Copy all
.DBFtable files - Include associated
.FPTmemo files - Include the
.DBCdatabase container with its.DCTand.DCXfiles, and each table's.CDXindex file (for long field names, primary keys and relationships) - Create a ZIP with all files
- Upload the ZIP to DataMeans
Supported Features
- Visual FoxPro 3.0 through 9.0
- FoxPro 2.x for DOS/Windows
- Visual FoxPro field types: Integer, Currency, DateTime, Varchar, Double, AutoIncrement
- Memo fields, and General (OLE), Picture and Blob fields delivered as their bytes (base64)
- Long field names from the database container
- Each table's primary key in the database container, over one field or several, becomes its primary key in the SQL files, wherever the data satisfies it
- Relationships defined in the database container become foreign keys in the SQL files, wherever the data satisfies them; the SQL file lists any it leaves out, and why
- Other relationships between tables are suggested from the data; the ones you confirm on the job page become foreign keys too
- NULL value detection
- Character encoding from the table's code page mark (CP1252, CP437, Mazovia, Kamenický, the Macintosh code pages and others); a table whose mark names none is read as UTF-8 when its text is valid UTF-8, and otherwise in the code page of the origin you choose
Known Limitations
- A relationship over more than one field is not carried over
- dBASE 7 tables (the format of Visual dBASE 7 and dBASE PLUS) and dBASE II (FoxBASE) tables are not read yet: copy them to dBASE IV or dBASE III tables first. The upload preview says so before you pay, and a job whose tables are all of these fails with that message
- A table whose header states more records than the file holds (a download cut short, or a damaged file) is converted with the records the file holds; the upload preview and the job report say how many the header states and how many were read, and a complete copy is the way to get the rest
- Indexes are not recreated in the SQL files; the
.CDXfiles are read only for the fields of the keys and relationships - Stored procedures, triggers and views in the database container are not converted
Note on the Excel formats. An
.xlsxsheet holds at most 1,048,575 rows of data and 16,384 columns, and a legacy.xlssheet 65,535 rows and 256 columns. Rather than ship a file that looks complete but is silently cut short, DataMeans leaves a table out of any Excel format it does not fit and notes it in the job report. The.xlsxcopy is also left out for tables of more than 8,000,000 cells (1,048,575 rows of 12 columns is 12.6 million), which take too long and too much memory to write, and the.xlscopy for tables of more than 150,000 cells, which the legacy format takes far too long to write. The CSV, JSON and SQL outputs always contain every row.
Overview
FoxPro is a data-centric, object-oriented programming language and database management system, originally developed by Fox Software and later acquired by Microsoft. It uses extended DBF file formats with additional structures for complex database applications. Visual FoxPro (VFP) represented the pinnacle of xBase evolution, offering both procedural and object-oriented programming with rich database capabilities before Microsoft announced its discontinuation in 2007.
History and Background
- 1984: FoxBASE released by Fox Software, a dBase II work-alike.
- 1986: FoxBASE+ released, compatible with dBase III Plus.
- 1989: FoxPro 1.0 released with a new interface and a superset of the dBase IV language.
- 1991: FoxPro 2.0 introduces Rushmore query optimization and integrated SQL support.
- 1992: Microsoft acquires Fox Software in a stock swap valued at approximately $173 million.
- 1993: FoxPro 2.5 released; the first version for Windows.
- 1995: Visual FoxPro 3.0 introduces object-oriented programming, a visual development environment, and the database container.
- 1996: Visual FoxPro 5.0 adds ActiveX support and COM component creation.
- 1998: Visual FoxPro 6.0 ships alongside Visual Studio 6.0, adding ActiveX Document support and Year 2000 compliance features.
- 2001: Visual FoxPro 7.0 adds IntelliSense, XML functions, and web services support.
- 2003: Visual FoxPro 8.0 adds the CursorAdapter class and autoincrementing fields.
- 2004: Visual FoxPro 9.0 adds Varchar, Varbinary, and Blob field types and the ReportListener report engine class.
- 2007: Microsoft announces there will be no version 10; Visual FoxPro 9.0 SP2 is the final release.
File Format Specifications
FoxPro uses the dBase-derived DBF table format, extended with additional field types and companion files.
DBF (DataBase File) Format:
- xBase-family table format with FoxPro-specific field types
- Header file type byte identifies the format level (0x30 Visual FoxPro; 0xF5 FoxPro 2.x with memo)
- File extension:
.dbf - Maximum fields: 255
- Maximum record size: 65,500 bytes
- File size limit: 2 GB
Memo Files:
.fpt: FoxPro memo file format (replaces dBase.dbt)- Stores variable-length text and binary data
- Block-structured; a 512-byte header records the block size and next free block
- Referenced by 4-byte block numbers in Visual FoxPro DBF records
Index Files:
.cdx: Compound index file (multiple index tags per file), supported since FoxPro 2.0.idx: Single index file- B-tree structure for fast lookups
- Support for Rushmore query optimization
Database Container:
.dbc: Database container file- Stores table membership, persistent relationships, connections, and views
- Contains stored procedures and database properties
- Stored as a Visual FoxPro table with companion
.dctmemo and.dcxindex files
Data Types and Structures
| Type Code | Type | Size | Description |
|---|---|---|---|
| C | Character | 1-254 bytes | Fixed-length text strings |
| V | Varchar | Variable | Variable-length text (VFP 9+) |
| N | Numeric | 1-20 bytes | Numbers with decimal precision, stored as text |
| F | Float | 1-20 bytes | Same as Numeric; kept for compatibility |
| I | Integer | 4 bytes | 32-bit signed integers |
| B | Double | 8 bytes | Double-precision floating point |
| Y | Currency | 8 bytes | Currency values |
| D | Date | 8 bytes | Dates in YYYYMMDD format |
| T | DateTime | 8 bytes | Date and time combined |
| L | Logical | 1 byte | Boolean (T/F/Y/N) |
| M | Memo | 4 bytes | Pointer to memo file |
| G | General | 4 bytes | OLE objects |
| W | Blob | 4 bytes | Binary large objects (VFP 9+) |
| Q | VarBinary | Variable | Variable binary data (VFP 9+) |
Database Structure:
- Free tables: Standalone DBF files
- Database tables: Part of DBC container with relationships
- Long table and field names (up to 128 characters) for tables in a database
- Referential integrity and triggers
- Views and stored procedures
- Multi-table transactions
Version Differences
| Version | Year | Key Changes | File Format Level |
|---|---|---|---|
| FoxPro 2.0 | 1991 | Rushmore, SQL support | FoxPro 2.x DBF (0xF5 with memo); adds .cdx indexes |
| FoxPro 2.5 | 1993 | First Windows version | FoxPro 2.x DBF; no format change |
| Visual FoxPro 3.0 | 1995 | OOP, visual development | New DBF file type 0x30; adds .dbc/.dct/.dcx |
| Visual FoxPro 5.0 | 1996 | ActiveX, COM components | No format change |
| Visual FoxPro 6.0 | 1998 | ActiveX Documents, MTS support | No format change |
| Visual FoxPro 7.0 | 2001 | IntelliSense, XML, web services | No format change |
| Visual FoxPro 8.0 | 2003 | CursorAdapter, autoincrement | Autoincrement file type 0x31 |
| Visual FoxPro 9.0 | 2004 | Varchar/Varbinary/Blob, ReportListener | Varchar/Varbinary/Blob file type 0x32 |
Compatibility Notes:
- Visual FoxPro reads FoxPro 2.x tables and leaves their headers unchanged unless new field types, null support, or database membership are added
- DBC containers introduced in VFP 3.0
- Tables belonging to a database store a backlink path to the
.dbcfile in the table header - Many modern tools read VFP DBF files
Technical References
What can I convert FoxPro / Visual FoxPro files to?
DataMeans converts FoxPro / Visual FoxPro files to clean CSV, Excel, JSON & SQL. Each table is exported as its own file, alongside a structured report of exactly what was extracted.
Do I need FoxPro / Visual FoxPro installed to open my files?
No. DataMeans reads FoxPro / Visual FoxPro files directly, so you don't need FoxPro / Visual FoxPro, a license, or any other legacy software to recover your data.
Can I preview my FoxPro / Visual FoxPro data before paying?
Yes. DataMeans shows your extracted tables and rows in the browser first, so you only pay when you're ready to download the full CSV, Excel, JSON & SQL export.
Is my data secure?
Yes. Your files are encrypted in transit and at rest, and they're deleted automatically: within 7 days if you don't go ahead with a conversion, and when your download window ends if you do. We never sell or share your data, and we never use it to train machine-learning models.