Prepare
- Upload Btrieve / Pervasive PSQL files
Btrieve (now Pervasive PSQL, Actian Zen) is a key-value database system with optional relational SQL layer. It uses B-tree indexing and is widely deployed in vertical market applications.
What You Can Upload
.btrBtrieve data files.ddfdata dictionary files- Associated index files
- ZIP archive with complete file sets
What You Get Out
DataMeans extracts 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 |
xls/{TableName}.xls | Legacy Excel format per table |
json/{TableName}.json | JSON array of records per table |
json/{TableName}.jsonl | Newline-delimited JSON (streaming-friendly) |
postgres.sql | PostgreSQL CREATE TABLE + INSERT statements |
schema/schema-graph.json | Relationship graph for visualization |
schema/er-model.json | ER model for diagram tools |
report.json | Structured extraction report |
report.md | Human-readable extraction summary |
How to Export / Obtain Files
- Locate your application's Btrieve data directory
- Copy all
.btrdata files - Include
.ddfdictionary files (essential for field mapping) - Create a ZIP with all files
- Upload the ZIP to DataMeans
Supported Features
- Key-value record extraction
- B-tree index analysis
- Data dictionary parsing for field definitions
- Record structure mapping
- Variable-length record handling
Known Limitations
- Data dictionary (DDF) files required for proper field mapping
- Some proprietary application-specific structures may need review
- Version-specific format differences exist
Last updated: January 2026
Overview
Btrieve (now Actian Zen) is a transactional database engine using Indexed Sequential Access Method (ISAM) for high-performance data storage and retrieval. Originally developed for embedded applications, it provides record-level access with multi-user concurrency, transactional integrity, and flexible indexing. The engine uses proprietary file formats optimized for speed and reliability in business applications.
History and Background
- 1982: SoftCraft develops Btrieve as a record manager.
- 1987: Novell acquires SoftCraft, integrates Btrieve with NetWare.
- 1994: Novell spins off Btrieve to BTI (Btrieve Technologies Inc.).
- 1996: BTI is renamed Pervasive Software.
- 1998: Pervasive.SQL 7 combines Btrieve 7.0 with Scalable SQL 4.
- 2005: Pervasive PSQL v9 expands maximum file sizes with the 9.0 and 9.5 formats.
- 2007: Pervasive PSQL Summit v10 introduces 64-bit engine support.
- 2010: Pervasive PSQL v11 adds full 64-bit and IPv6 support.
- 2013: Actian acquires Pervasive Software.
- 2019: Zen v14 completes the rebranding from Pervasive PSQL to Actian Zen.
- 2024: Actian Zen v16 introduces the 16.0 file format with long key support.
File Format Specifications
Btrieve uses proprietary ISAM-based file formats with efficient indexing and storage.
File Extensions:
.btr: Conventional extension for Btrieve data files (binary ISAM format).mkd: Conventional extension for MicroKernel Database Engine data files.ddf: Data dictionary files describing table schema for the relational engine- No separate index files - indexes embedded in the data file
File Structure:
- Fixed-length or variable-length records
- B-tree indexes for fast key-based access
- Page-based storage with page sizes from 512 to 16,384 bytes
- Optional record compression and page compression (9.5 format onward)
- Transaction log segments for recovery (
.logfiles)
Key Components:
- Data pages: Store actual record data
- Index pages: B-tree nodes for key navigation
- File control record: Metadata including format version and page size
- Page allocation tables: Map logical pages to physical pages (6.0 format onward)
- Variable-tail allocation tables: Locate overflow portions of variable-length records (6.15 onward)
Data Types and Structures
Btrieve supports the following documented key types:
| Type Code | Type | Size | Description |
|---|---|---|---|
| 0 | String | Variable | Character data ordered left to right, blank-padded |
| 1 | Integer | 1, 2, 4, or 8 bytes | Signed binary integer |
| 2 | Float | 4 or 8 bytes | IEEE single or double precision |
| 3 | Date | 4 bytes | Day, month, and year (0001 to 9999) |
| 4 | Time | 4 bytes | Hundredths, seconds, minutes, hours |
| 5 | Decimal | Variable | Packed decimal, two digits per byte |
| 6 | Money | Variable | Decimal representation with two implied decimal places |
| 7 | Logical | 1 or 2 bytes | Boolean collated as a string |
| 8 | Numeric | Variable | Zoned decimal stored as ASCII digits |
| 9 | BFloat | 4 or 8 bytes | Microsoft Basic floating point (legacy) |
| 10 | LString | Variable | Length-prefixed (Pascal-style) string |
| 11 | ZString | Variable | Null-terminated (C-style) byte string |
| 12 | Note | Variable | Legacy text type, superseded |
| 13 | LVar | Variable | Legacy variable-length type, superseded |
| 14 | Unsigned Binary | Variable | Unsigned integer compared byte by byte |
| 15 | Autoincrement | 2, 4, or 8 bytes | Automatically assigned ascending integer |
| 25 | WString | Variable | UCS-2 Unicode string, not null-terminated |
| 26 | WZString | Variable | Double-null-terminated Unicode string |
Database Structure:
- Records: Fixed-length or variable-length data units
- Keys: Indexed fields for fast access (up to 119 keys per file)
- Segments: Multi-field composite keys (up to 420 segments per file in the 9.5 format with 8 KB or larger pages)
- Duplicates: Keys may be unique or allow duplicate values
- Referential integrity: Enforced by the relational engine using data dictionary definitions
Version Differences
| Version | Year | Key Features | File Format |
|---|---|---|---|
| Btrieve 5.x | 1988 | NetWare-native engine; transaction logging in 5.1 | 5.x, pre-image paging |
| Btrieve 6.0 | 1992 | Shadow paging | 6.0, page allocation tables |
| Btrieve 6.15 | 1994 | MicroKernel Database Engine | 6.x, variable-tail allocation tables |
| Pervasive.SQL 7 | 1998 | Btrieve 7.0 bundled with Scalable SQL 4 | 7.x |
| Pervasive PSQL v9 | 2005 | Larger databases, improved Linux support | 9.0 (128 GB); 9.5 (256 GB) |
| Pervasive PSQL v10 | 2007 | First 64-bit engine support | No format change |
| Pervasive PSQL v11 | 2010 | Full 64-bit and IPv6 support | No format change |
| PSQL v13 | 2017 | 8-byte autoincrement, Android and iOS support | 13.0 (terabyte file sizes) |
| Actian Zen v14 | 2019 | Zen rebranding, AES-256 encryption, JSON filtering | No format change |
| Actian Zen v15 | 2021 | SQL windowing functions | No format change |
| Actian Zen v16 | 2024 | Long keys, Kafka integration | 16.0 |
Compatibility Notes:
- Later engines open files created in earlier formats; 5.x and older files are read-only until rebuilt
- Btrieve 6.x and earlier engines cannot open files in the 7.0 or later formats
- Automatic in-place format upgrade applies only from 8.x to 9.0
- The Rebuild utility converts files between format versions
- Page compression requires the 9.5 file format or later
Technical References
- Wikipedia: Btrieve
- Wikipedia: Actian Zen
- Actian Zen Data Types
- Actian Zen Converting Data Files
- BTR File Format
To learn how to use this format with DataMeans, see the User Guide.