Paradox table format

<< Click to Display Table of Contents >>

Navigation:  Tables > Data table formats > Paradox >

Paradox table format

Previous pageReturn to chapter overviewNext page

The Paradox data table format

Each Paradox table core file has the file extension .DB - see also Associated table files.

Accessory files with various file extensions accompany each table file depending on data contents and table structure.
Please refer associated table files for various database formats.

A Paradox database consists of multiple files at least corresponding the number of tables in the database.
The database comprises the data files in the database directory folder.

The Paradox tables from level 1 through 3.0 and 3.5 are said to be compatible having the same field types and data structure but actually with some technical differences of the file structure, and so, the BDE cannot create Paradox level 3.0 tables and before.
The Paradox table level 3.5 is often referenced as Paradox level 3 which is misleading, and in BDE terminology Paradox level 3 actually means Paradox level 3.5.

The Paradox level 4 is some times referred as the Paradox Standard Table.
The BDE Paradox driver for tables vers. 4 and 5 accepts path lengths up to about 70 characters (78 chars incl. file name.ext).

Max. field name lengths is 25 characters, and allowing almost any character of the current character set, however not allowing space as the leading character, and disrecommending comma [,], pipe [|] and exclamation [!] if used by a query, as these characters may interfere with query execution. Mixed case is allowed, but querying through BDE is case insensitive.
If including special characters (as e.g. *, -, +, /, etc.), the field names referenced must be enclosed within quotation marks.

The version 7 format was released in 1995 along the Borland Paradox for Windows version 7.
There are no later versions than the version 7 table format, though there have been a number of later versions of the associated software package, from 1997 and on by the Corel company (Paradox 8, 9, 10 and 11 software package).
The BDE Paradox driver for tables vers. 7 accepts path lengths up to 260 characters.

See also SQL data type translation.

Version specifics

Field types (table format versions)

Version 3.5
(1990)

Version 4
(1992)

Version 5 & 7
(v.5: 1994
v.7: 1995)

Data contents

Size setting

Alpha

Alpha

Alpha

Text, any characters according to applied language driver.
Essentially a VARCHAR() field.

Max. 255 chars

Number

Number

Number

64-bit floating point number +10E308 to -10E307,
15 significant digits.

Auto

Money

Money

Money

Currency (floating point number),
Display 2 decimals, stores 6 decimals.

Auto

Short

Short

Short

16-bit signed integer (max. ± 32767)

Auto



Long

32-bit signed integer (max. ± 2147483647)

Auto



BCD

Binary Coded Decimal (± 1,234E14)
Up to 20 significant digits. Up to 4 decimals.

Size max. 32,
decimal max. 4.

Date

Date

Date

Dates, range*:
Pdx 3.5 - 5: 0100-01-01 to 9999-12-31 CE.
Pdx 7: 9999-12-31 BCE to 9999-12-31 CE.

Auto



Time

Time of day (mS since midnight)

Auto



TimeStamp

Date & time of day*
Stored as Float value: Integer part as days since 0001-01-01 and fractional part as fraction of a day.

Auto


Memo

Memo

BLOB field.
Memo text, practically unlimited text length (up to 256 MB).

Size indicating number of characters stored in the core table (the *.db file).
Size 1 to 240, default 1.


Formatted Memo

Formatted Memo

BLOB field.
Rich Formatted Text (RTF), practically unlimited length (up to 256 MB).

Size indicating number of characters stored in the core table (the *.db file).
Size 1 to 240, default 1.


Graphic

Graphic

BLOB field.
Images (PNG, JPEG, GIF, TIFF, BMP, ICO)
(up to 256 MB).

Size indicating number of bytes stored in the core table (the *.db file).
Size 1 to 240, default 1.


OLE

OLE

BLOB field.
Object Linking and Embedding, i.e. links to external functional objects (used in customized applications).

Size indicating number of bytes stored in the core table (the *.db file).
Size 1 to 240, default 1.


Binary

Binary

BLOB field.
Binary data, e.g. any generated or imported object or document
(up to 256 MB).

Size indicating number of bytes stored in the core table (the *.db file).
Size 1 to 240, default 1.



Logical

Boolean TRUE/FALSE values.
Accepts NULLs.

N/A



Autoincrement

Autoincrementing long integer.

N/A



Bytes

Short binary data (vs. BLOB data) stored all in table file, e.g. for bar codes or GUID identifiers.

1 to 255 (Bytes).

*: Date and TimeStamp field range: according to the Borland Paradox 7 manual.
   Tested with PdxEditor on Pdx 5 & 7 tables: 0001-01-01 to 9999-12-31 for both (BCE dates unresolved).

The difference from Paradox table format version 5 to 7 is the added descending secondary indexes and added unique secondary indexes.

BCD fields SQL: DECIMAL(s[,p])

Special care should be taken when dimensioning BCD fields.
Fully supported this data type may support up to 32 significant digits, however with Paradox tables only up to 20 significant digits.
The field is dimensioned with scale (size) op to 32 and digits formally up to 32.
In Database Desktop only one dimension is accessible: the "size" dimension that actually allocates the number of digits ("precision") and allowing a value up to 32 to be set.
Likewise in SQL the BCD fields are specified by the DECIMAL(s,p) keyword with scale and precision dimensions up to 32 as in DECIMAL(32,32).
Specifying Paradox BCD fields in SQL with the DECIMAL keyword without dimensions is illegal.
BDE for the Paradox always allocates the first (scale) parameter to 32 irrespective of the user selection (via SQL) leaving the second parameter (precision) to set by the user.

Practically, setting the precision to 32 definitely will give erratic inputs shifting all inputs to the right converting e.g. inputs of 12,25 to 0,1225 and 0,35 to 0,035.
With large number inputs the received values can be total garbage even locking up the table. So, never set the precision parameter higher than 31.
Actually, the BCD field will never store more than up to 4 decimals (thus not revealing any further significant digits when multiplying the BCD field).
So, it is suggested not to set the BCD precision higher than 4. Setting the precision to 0 means the BCD will take integer values only.

Creating Paradox BCD fields by SQL: DECIMAL(s[,p])

When creating Paradox BCD fields by SQL the keyword is DECIMAL(s[,p]).

DECIMAL(s) will result in a field accepting integer values only. The s will always evaluate to the default value equalling DECIMAL(32).

DECIMAL(s,p): The s will default to 32, the p will specify the number of decimals.

DECIMAL without parameters is illegal (with Paradox tables).

Validity checks

Paradox table from version 3.5 to 7 all have the option of associating validity checks:

the field being required

min & max allowed value

default value

picture (string field InputMask/EditMask)

These setting are stored in the accompanying *.VAL file.
PdxEditor cannot set, change these conditions except the Required attribute, but deleting the .VAL-file releases the table from the check conditions. The extended restructuring however will reset all preexisting value checks - see Restructure Fields extended.

__________________________
PdxEditor Application Help, 21 May 2026; © 2010-2026 Niels Knabe