|
<< Click to Display Table of Contents >> Paradox 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 3.5 |
Version 4 |
Version 5 & 7 |
Data contents |
Size setting |
Alpha |
Alpha |
Alpha |
Text, any characters according to applied language driver. |
Max. 255 chars |
Number |
Number |
Number |
64-bit floating point number +10E308 to -10E307, |
Auto |
Money |
Money |
Money |
Currency (floating point number), |
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) |
Size max. 32, |
||
Date |
Date |
Date |
Dates, range*: |
Auto |
Time |
Time of day (mS since midnight) |
Auto |
||
TimeStamp |
Date & time of day* |
Auto |
||
Memo |
Memo |
BLOB field. |
Size indicating number of characters stored in the core table (the *.db file). |
|
Formatted Memo |
Formatted Memo |
BLOB field. |
Size indicating number of characters stored in the core table (the *.db file). |
|
Graphic |
Graphic |
BLOB field. |
Size indicating number of bytes stored in the core table (the *.db file). |
|
OLE |
OLE |
BLOB field. |
Size indicating number of bytes stored in the core table (the *.db file). |
|
Binary |
Binary |
BLOB field. |
Size indicating number of bytes stored in the core table (the *.db file). |
|
Logical |
Boolean TRUE/FALSE values. |
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.
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.
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).
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.