All systems

Btrieve / Pervasive PSQL

Btrieve data
Supported

Prepare

  1. Upload Btrieve / Pervasive PSQL files
Guide

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

  • .btr Btrieve data files
  • .ddf data dictionary files
  • Associated index files
  • ZIP archive with complete file sets

What You Get Out

DataMeans extracts your data into multiple modern formats:

OutputDescription
csv/{TableName}.csvOne CSV file per table with all row data
xlsx/{TableName}.xlsxExcel workbook per table
xls/{TableName}.xlsLegacy Excel format per table
json/{TableName}.jsonJSON array of records per table
json/{TableName}.jsonlNewline-delimited JSON (streaming-friendly)
postgres.sqlPostgreSQL CREATE TABLE + INSERT statements
schema/schema-graph.jsonRelationship graph for visualization
schema/er-model.jsonER model for diagram tools
report.jsonStructured extraction report
report.mdHuman-readable extraction summary

How to Export / Obtain Files

  1. Locate your application's Btrieve data directory
  2. Copy all .btr data files
  3. Include .ddf dictionary files (essential for field mapping)
  4. Create a ZIP with all files
  5. 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

Technical reference

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 (.log files)

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 CodeTypeSizeDescription
0StringVariableCharacter data ordered left to right, blank-padded
1Integer1, 2, 4, or 8 bytesSigned binary integer
2Float4 or 8 bytesIEEE single or double precision
3Date4 bytesDay, month, and year (0001 to 9999)
4Time4 bytesHundredths, seconds, minutes, hours
5DecimalVariablePacked decimal, two digits per byte
6MoneyVariableDecimal representation with two implied decimal places
7Logical1 or 2 bytesBoolean collated as a string
8NumericVariableZoned decimal stored as ASCII digits
9BFloat4 or 8 bytesMicrosoft Basic floating point (legacy)
10LStringVariableLength-prefixed (Pascal-style) string
11ZStringVariableNull-terminated (C-style) byte string
12NoteVariableLegacy text type, superseded
13LVarVariableLegacy variable-length type, superseded
14Unsigned BinaryVariableUnsigned integer compared byte by byte
15Autoincrement2, 4, or 8 bytesAutomatically assigned ascending integer
25WStringVariableUCS-2 Unicode string, not null-terminated
26WZStringVariableDouble-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

VersionYearKey FeaturesFile Format
Btrieve 5.x1988NetWare-native engine; transaction logging in 5.15.x, pre-image paging
Btrieve 6.01992Shadow paging6.0, page allocation tables
Btrieve 6.151994MicroKernel Database Engine6.x, variable-tail allocation tables
Pervasive.SQL 71998Btrieve 7.0 bundled with Scalable SQL 47.x
Pervasive PSQL v92005Larger databases, improved Linux support9.0 (128 GB); 9.5 (256 GB)
Pervasive PSQL v102007First 64-bit engine supportNo format change
Pervasive PSQL v112010Full 64-bit and IPv6 supportNo format change
PSQL v1320178-byte autoincrement, Android and iOS support13.0 (terabyte file sizes)
Actian Zen v142019Zen rebranding, AES-256 encryption, JSON filteringNo format change
Actian Zen v152021SQL windowing functionsNo format change
Actian Zen v162024Long keys, Kafka integration16.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


To learn how to use this format with DataMeans, see the User Guide.