User Tools

Site Tools


btrieve_database_driver.htm
Navigation:  ISAM File Drivers > Btrieve Database Driver >====== Btrieve Database Driver ====== Previous pageReturn to chapter overviewNext page

Database Drivers

Choosing the Right Database Driver

Common Database Driver Features

Driver Strings

Btrieve:Specifications

Btrieve:File Specifications/Maximums

Btrieve:Driver Strings

Btrieve:Driver Properties

Btrieve:Supported Commands and Attributes

Btrieve:Other

Btrieve:Specifications

This file driver reads and writes Btrieve files using low-level direct access.

Under Clarion, the Btrieve file driver is implemented by using .DLLs and an .EXE supplied by Pervasive Software (formerly Btrieve Technologies, Inc.). For an application to use a Btrieve file driver, the following files must accompany the executable:

You must purchase a 32-bit Btrieve engine from Pervasive Software.

LICENSE WARNING: A registered Clarion owner cannot redistribute the above files outside of his/her organization without a license from Pervasive Software.

Files: ClaBTRL.LIB Windows Static Link Library
ClaBTR.LIB Windows Export Library
ClaBTR.DLL Windows Dynamic Link Library

Btrieve:Data Types

Clarion data type Btrieve data type
BYTE STRING (1 byte)
SHORT INTEGER (2 bytes)
LONG INTEGER (4 bytes)
SREAL FLOAT (4 bytes)
REAL FLOAT (8 bytes)
BFLOAT4 BFLOAT (4 bytes)
BFLOAT8 BFLOAT (8 bytes)
PDECIMAL DECIMAL
STRING STRING
CSTRING ZSTRING
PSTRING LSTRING
DATE DATE
TIME TIME
USHORT UNSIGNED BINARY (2 bytes)
ULONG UNSIGNED BINARY (4 bytes)
MEMO STRING,LVAR or NOTE(see /MEMO below)
BYTE,NAME('LOGICAL') LOGICAL*
USHORT,NAME('LOGICAL') LOGICAL*
PDECIMAL,NAME('MONEY') MONEY*
STRING(@N0n-),NAME('STS') SIGNED TRAILING SEPARATE*
DECIMAL*

Notes:

*You can store Clarion DECIMAL types in a Btrieve file. However, you cannot build a key or index using the field. This is provided for backward compatibility with older Clarion programs which used the Btrieve LEM. If you need standard Btrieve decimal data that is compatible with any other Btrieve compliant program, you should use the PDECIMAL data type and not the DECIMAL data type.

*If you want to create a file with LOGICAL or MONEY field types, you must specify LOGICAL or MONEY in the field's NAME attribute. If you are accessing an existing file, the NAME attribute is not required.

*LOGICAL may be declared as a BYTE or USHORT, depending on whether it is a one or two byte LOGICAL:

   LogicalField1  BYTE    !One byte LOGICAL

   LogicalField2  USHORT  !Two byte LOGICAL

*MONEY may be declared as a PDECIMAL(x,2), where x is the total number of digits to be stored:

MoneyField PDECIMAL(7,2),NAME('MONEY') !Store up to 99999.99

*Btrieve NUMERIC fields are not fully supported by the driver. Btrieve NUMERIC is stored as a string with the last character holding a digit and an implied sign. The possible values for this last character are:

           1 2 3 4 5 6 7 8 9 0

Positive:   A B C D E F G H I {

Negative:   J K L M N O P Q R }

*To access a NUMERIC field you must define a STRING(@N0x), where x is one less than the digits in the NUMERIC, and a STRING(1) to hold the sign indicator. The Btrieve driver does not maintain this sign field, the application must be written to directly handle it.

*For example to access a NUMERIC(7) you would have:

NumericGroup GROUP         !Store -999999 to 999999

Number        STRING(@N06) !Numbers

Sign          STRING(1)    !Sign indicator

            END

Btrieve:File Specifications/Maximums

NoteBox.jpg

The specifications below document Version 6.15. Your specific limits are dependent on what version of Btrieve you are using, and are not dependent on the Btrieve driver. Refer to your Btrieve documentation for your specific limitations.

File Size :            4,000,000,000 bytes

Records per File :     Limited by the size of the file

Record Size

Client-based :        65,535 bytes variable length

Server based :        57,000 bytes variable length

Field Size :           65,520 bytes

Fields per Record:     65,520

Keys/Indexes per File: 24 with NLM5

                      256 with NLM6.

Client Btrieve v6.15

Page Size   Max Key Segments

512               8

1,024             23

1,536             24

2,048             54

4,096             119

This is the total number of components. If you have a multicomponent key built from three fields, this counts as three indexes when counting the number of allowed indexes.

Key Size :            255 bytes

Memo fields per File: System memory dependent

Memo field size :     65,520 bytes

Open Files :          Operating system dependent

NoteBox.jpg

The Btrieve driver supports data only and key only files.

btrieve_database_driver.htm.txt · Last modified: 2021/04/15 15:57 by 127.0.0.1