All systems

FoxPro / Visual FoxPro

Visual FoxPro / DBF files
Supported
Guide

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

  • .DBF table files
  • .FPT memo files
  • .DBC database container files (for long field names, primary keys and relationships)
  • .DCT and .DCX database container memo and index files
  • .CDX index 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:

OutputDescription
csv/{TableName}.csvOne CSV file per table with all row data
xlsx/{TableName}.xlsxExcel workbook per table (omitted for tables over 1,048,575 rows, 16,384 columns or 8,000,000 cells - see note below)
xls/{TableName}.xlsLegacy Excel format per table (omitted for tables over 65,535 rows, 256 columns or 150,000 cells - see note below)
json/{TableName}.jsonJSON array of records per table
json/{TableName}.jsonlNewline-delimited JSON (streaming-friendly)
postgres.sqlPostgreSQL CREATE TABLE + INSERT statements
mysql.sqlThe same schema and rows, in MySQL dialect
sqlite.sqlThe same schema and rows, in SQLite dialect
ansi.sqlThe same schema and rows, in portable ANSI SQL
sqlserver.sqlThe same schema and rows, in SQL Server (T-SQL) dialect
report.jsonStructured conversion report
report.mdHuman-readable conversion summary

How to Export / Obtain Files

  1. Locate your FoxPro application's data directory
  2. Copy all .DBF table files
  3. Include associated .FPT memo files
  4. Include the .DBC database container with its .DCT and .DCX files, and each table's .CDX index file (for long field names, primary keys and relationships)
  5. Create a ZIP with all files
  6. 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 .CDX files 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 .xlsx sheet holds at most 1,048,575 rows of data and 16,384 columns, and a legacy .xls sheet 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 .xlsx copy 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 .xls copy 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.

Technical reference

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 .dct memo and .dcx index files

Data Types and Structures

Type CodeTypeSizeDescription
CCharacter1-254 bytesFixed-length text strings
VVarcharVariableVariable-length text (VFP 9+)
NNumeric1-20 bytesNumbers with decimal precision, stored as text
FFloat1-20 bytesSame as Numeric; kept for compatibility
IInteger4 bytes32-bit signed integers
BDouble8 bytesDouble-precision floating point
YCurrency8 bytesCurrency values
DDate8 bytesDates in YYYYMMDD format
TDateTime8 bytesDate and time combined
LLogical1 byteBoolean (T/F/Y/N)
MMemo4 bytesPointer to memo file
GGeneral4 bytesOLE objects
WBlob4 bytesBinary large objects (VFP 9+)
QVarBinaryVariableVariable 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

VersionYearKey ChangesFile Format Level
FoxPro 2.01991Rushmore, SQL supportFoxPro 2.x DBF (0xF5 with memo); adds .cdx indexes
FoxPro 2.51993First Windows versionFoxPro 2.x DBF; no format change
Visual FoxPro 3.01995OOP, visual developmentNew DBF file type 0x30; adds .dbc/.dct/.dcx
Visual FoxPro 5.01996ActiveX, COM componentsNo format change
Visual FoxPro 6.01998ActiveX Documents, MTS supportNo format change
Visual FoxPro 7.02001IntelliSense, XML, web servicesNo format change
Visual FoxPro 8.02003CursorAdapter, autoincrementAutoincrement file type 0x31
Visual FoxPro 9.02004Varchar/Varbinary/Blob, ReportListenerVarchar/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 .dbc file in the table header
  • Many modern tools read VFP DBF files

Technical References

Questions

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.