DFBTRDRV.INT
The general behavior of the DataFlex Pervasive.SQL Driver can be configured through the driver configuration file: DFBTRDRV.INT. The configuration file contains settings that change the behavior of the driver in various situations.
A sample configuration file DFBTRDRV_DEFAULT.INT is installed in the DataFlex bin directory. The sample configuration file can be used as the basis of an environment configuration file.
Keywords
The following sections list all possible settings for the configuration file DFBTRDRV.INT.
ACS
Possible values
- Name of an ACS file
Default value
- (none)
Description
This keyword must be followed by a path to a file containing an Alternate Collating Sequence (ACS) table to be used on string fields. In Pervasive.SQL, this might be a STRING, LSTRING or ZSTRING type. This collating sequence will be used for every string field in an index that does not specify case-insensitive.
The filename must be passed within quotes. When a path is specified, the driver will read the table from that path. If no path is specified, the DFPath will be used to search for the file.
ACS_UPPER
Possible values
- Name of an ACS file
Default value
- (none)
Description
This keyword must be followed by a path to a file containing an ACS table to be used on string fields that use the case-insensitive switch. In Pervasive.SQL, this might be a STRING, LSTRING or ZSTRING type. This collating sequence will be used for every string field in an index that has been defined using the case-insensitive switch. The ACS to be used for fields not using the case-insensitive switch must be given using the ACS keyword.
The filename must be passed within quotes. When a path is specified, the driver will read the table from that path. If no path is specified, the DFPath will be used to search for the file.
ALLOW_UNLOCKED_UPDATES
Possible values
0(False) or1(True)
Default value
0
Description
By default the driver requires a program to lock a record before it can change it. When a record has not been locked, an error will be generated. To suppress this error, set this setting to 1 (True).
AUTO_LOGOUT
Possible values
0(False) or1(True)
Default value
1
Description
This setting controls whether the DDF tables will be closed automatically once the last Pervasive.SQL table has been closed. By default they will be closed because this opens the way to switch DDF tables by changing the DFPATH at runtime. If you do not want to close the DDF tables after the last Pervasive.SQL table has been closed, set this value to 0.
AUTO_MARK_SYSFILE
Possible values
0(False) or1(True)
Default value
1
Description
This setting controls how a table containing one record and no indexes will be treated when opened. If this setting is true (1), the table will be marked as a system table. If it is set to 0, it will be treated like a normal table.
BTR_PATH
Possible values
- A valid path (UNC path is supported)
Default value
- (none)
Note
- This setting applies only when
DATABASE_MODEis0(false). It will not be used whenDATABASE_MODEis1(true).
Description
This setting controls the location of the Pervasive.SQL tables. By default it is not set, which means the datapath/DFPath is used to find a Pervasive.SQL table. When this setting is used it must point to a directory. The driver will try to locate all Pervasive.SQL tables in this location and will no longer use the datapath. Note that this setting can only have one path.
CACHE_PATH
Possible values
- A valid path (UNC path is supported)
Default value
- (none)
Description
This setting controls the location of structure cache (.CCH) files. By default, structure cache files are searched for along datapath/DFPATH. New structure cache files are created in the first directory of datapath/DFPATH if no CACHE_PATH is specified.
COMP3_SIGN_NEG
Possible values
13
Default value
13
Description
The value the driver uses for the negative sign in numeric values stored as COMP3-type fields. In COMP3 fields the sign is determined by a 1-byte value. Pervasive.SQL allows one value for the negative sign: hexadecimal 0x0D (decimal 13). Specify the decimal value in DFBTRDRV.INT.
Note: It is rarely necessary to change this value. Changing this is advanced usage; do not change this setting from its default unless absolutely necessary.
COMP3_SIGN_POS
Possible values
12or15
Default value
15
Description
The value the driver uses for the positive sign in numeric values stored as COMP3-type fields. In COMP3 fields the sign is determined by a 1-byte value. Pervasive.SQL allows two values for the positive sign: hexadecimal 0x0C (decimal 12) and hexadecimal 0x0F (decimal 15). Specify the decimal value in DFBTRDRV.INT.
Note: It is rarely necessary to change this value. Changing this is advanced usage; do not change this setting from its default unless absolutely necessary.
CONVERT_LONG_FILENAMES
Possible values
0(False) or1(True)
Default value
1
Description
The driver automatically converts a long filename to a short one before it tries to open a table. This conversion can cause a Novell client to try to log in to a Novell server instead of just perform authentication. This is typically used when using a Novell Runtime server that only allows one concurrent user. This setting switches the conversion of long filenames on or off.
DATABASE_MODE
Possible values
0(Off) or1(On)
Default value
0
Description
DATABASE_MODE determines how the driver locates Pervasive.SQL metadata tables and data tables:
- In non-database mode, data tables are found by searching the datapath/DFPATH or by specifying a
BTR_PATHandDDF_PATH. - In database mode, data tables are found by specifying a Pervasive.SQL database name in a URI. Refer to Pervasive.SQL Database Mode and Security for further information.
DATABASE_MODE can only be set to 1 when running on Pervasive.SQL V8.5 or later.
If DATABASE_MODE is 1, the following settings will not be used: BTR_PATH, DDF_PATH and DDF_OWNER.
DETECT_INCOMPATIBLE_SIGN_POS
Possible values
0(False) or1(True)
Default value
1
Description
This setting controls whether the driver should detect an incompatible positive sign in numeric (COMP3) fields. If this setting is 1, the driver will perform a check when reading numeric values. If the positive sign in the Pervasive.SQL table differs from the value specified by COMP3_SIGN_POS, the following error will occur:
Error 20562, DFBTRERR_INCOMPATIBLE_POSITIVE_SIGN_DETECTED
Note: This error will occur only in very specific circumstances. It is rarely necessary to change the DETECT_INCOMPATIBLE_SIGN_POS setting. Changing this is advanced usage; do not change this setting from its default unless you get the above-mentioned error.
DDF_OWNER
Possible values
- A valid Pervasive.SQL owner name
Default value
- (none)
Description
This setting supports database security in Pervasive.SQL versions before V8.5. Security in Pervasive.SQL V8.5 or later is supported by the DATABASE_MODE setting. If DATABASE_MODE is 1, the DDF_OWNER setting will not be used.
When database security is switched on in pre-V8.5 versions, you can use this keyword to make the password for database security known to the Pervasive.SQL engine. The same can be accomplished by using the DFBTR_DDF_OWNER command defined in DFBTRDRV.PKG.
DDF_PATH
Possible values
- A valid path (UNC path is supported)
Default value
- (none)
Note
- This setting applies only when
DATABASE_MODEis0. It will not be used whenDATABASE_MODEis1.
Description
This setting controls the location of the Pervasive.SQL metadata tables (DDF tables). By default it is not set, which means the datapath/DFPath is used to find the DDF tables. When used it must point to a directory. The driver will try to locate the DDF tables in this location and will no longer use the datapath. Note that this setting can only have one path.
EXPLICIT_LOCKING
Possible values
0(False) or1(True)
Default value
1
Description
This setting controls the state of explicit locking. When set to 0 (False), explicit locking will be switched off. Refer to Transactions and the DataFlex Pervasive.SQL Driver for more information.
INT_PATH
Possible values
- A valid path (UNC path is supported)
Default value
- (none)
Description
This setting controls the location of the intermediate (.INT) files. By default .INT files are searched for along datapath/DFPATH. New .INT files are created in the first directory of datapath/DFPATH. When INT_PATH is specified, the driver will use it instead of datapath/DFPath to look for .INT files.
LOCK_DELAY
Possible values
0–2147483647(milliseconds)
Default value
0
Description
This setting controls the number of milliseconds the driver will wait between two lock attempts when a lock has failed. The default value is controlled by the DataFlex API and is 0. Setting this value in DFBTRDRV.INT overrides the DataFlex API default.
LOCK_READONLY
Possible values
0(False) or1(True)
Default value
0
Description
This setting controls whether tables opened for read-only access are locked when accessed within a transaction. Note that this only affects the locking of concurrent transactions since exclusive transactions always lock every open table regardless of file mode.
Default is 0 (False).
LOCK_TIMEOUT
Possible values
0–2147483647(milliseconds)
Default value
60000
Description
This setting controls the number of milliseconds after which a lock attempt is considered to have failed. By default the setting from the DataFlex API is used: 60000 (60 seconds). When set in DFBTRDRV.INT, it overrides the DataFlex API setting.
LOGFILE_PATH
Possible values
- Pathname to a log file
Default value
- (none)
Description
This setting controls the location of the error log file. When set to a valid filename, the driver will write extra error information to this file. The information is formatted as:
a;b;c;d
where:
- a = Error number
- b = Extra error context information
- c = User who got the error
- d = Table the error was triggered on (when available)
OWNER
Possible values
- A valid Pervasive.SQL owner name
Default value
- (none)
Description
Note: Owner names are case sensitive.
This keyword must be followed by an owner name. It can be used to populate the driver’s list of owners at initialization. The keyword may be used more than once to fill the list.
Whenever the driver opens a table, it will try to use one of the owner names from the list starting with the first one. If the table doesn’t open using the first, it will try the second, and so on. When it reaches the end of the list and still has not opened the table, it will try to open the table without an owner name.
PAD_STRING
Possible values
0(False) or1(True)
Default value
0
Description
This keyword controls how the driver stores string values. Normally they are stored as the DataFlex API presents them. In some cases it is desirable that strings are stored padded with spaces if the actual value does not fill the complete length of the field. Setting PAD_STRING to a non-zero value turns on space padding for string values.
Note: Padding applies only to fields of the DataFlex ASCII type. Text fields are not affected.
RECID_NAME
Possible values
- A valid Pervasive.SQL field name
Default value
RECID
Description
This keyword is used when converting from DataFlex to Pervasive.SQL with recnum support. It determines the name to use for the record id field.
RECNUM_METHOD
Possible values
GET_POSITIONPOSITION_BLOCKDOUBLE_CHECKAUTO_CONFIG
Default value
AUTO_CONFIG
Description
This setting controls how the driver determines the record number for a record when the table does not have recnum support. The default is AUTO_CONFIG.
GET_POSITION— Makes a call to the Pervasive.SQL client asking for an ID for the current record. This is as slow as finding a record.POSITION_BLOCK— Uses the ID value from the position block that belongs to the table. This method is much faster because it doesn’t need to access the Pervasive.SQL client.DOUBLE_CHECK— A debug setting that uses bothGET_POSITIONandPOSITION_BLOCKand compares the values. An error is generated when the values do not match.AUTO_CONFIG— UsesDOUBLE_CHECKthe first time it is asked for a recnum; if that call succeeds it assumes it is safe to usePOSITION_BLOCKthereafter.
RENAME_RETRY_COUNT
Possible values
0–1000
Default value
10
Description
The number of times a rename will be retried when it does not succeed.
During a table restructure, the driver might need to rename the original Pervasive.SQL table and replace it with a new one. Just before renaming the table, the driver will close the table. The Pervasive.SQL engine must close the table before the operating system can rename it. If the Pervasive.SQL engine does not release the table immediately, the driver must retry the rename. This setting specifies the number of retry attempts.
There will be a 1-second delay between retries.
REPORT_CACHE_ERRORS
Possible values
0(False) or1(True)
Default value
1
Description
This setting controls whether an error should be generated whenever the driver cannot write to a structure cache file.
RUNTIME_SERVER_SUPPORT
Possible values
0(False) or1(True)
Default value
0
Description
Set this when using a Novell runtime server. When this keyword is 1 (True), the following settings will be set to 0 (False): CONVERT_LONG_FILENAMES and USE_CACHE_EXPIRATION.
TEXT_TYPE
Possible values
LONGVARorNOTE
Default value
LONGVAR
Description
This setting determines which Pervasive.SQL type will be used for DataFlex text and binary fields:
- When
TEXT_TYPEisLONGVAR: DF_TEXTfields will beLONGVARCHAR-
DF_BINARYfields will beLONGVARBINARY
This applies both during conversion and restructuring. -
When
TEXT_TYPEisNOTE: DF_TEXTfields will beZSTRINGif the text field is not the last field of the table, andNOTEwhen the text field is the last field.DF_BINARYfields will bechar
This applies both during conversion and restructuring.
Earlier versions of the driver used ZSTRING/NOTE types. These types are no longer supported in Pervasive.SQL. It is recommended to use the LONGVAR types.
Trim_VarChar_Values
Possible values
- Integer value (
0= False,1= True)
Associated attribute
Description
Determines whether values are trimmed when stored in a SQL varchar column.
See Padding and Trimming in SQL Databases for further information.
TRANSACTION_TYPE
Possible values
EXCLUSIVE,CONCURRENTandNONE
Default value
EXCLUSIVE
Description
This keyword must be followed by the preferred transaction type to use.
Refer to Transactions and Locking for more information.
USE_CACHE
Possible values
0(False) or1(True)
Default value
1
Description
This setting controls whether structure caching should be used when opening tables. Structure caching reads all structural information about a table from structure cache (.CCH) files, speeding up the opening of files. Refer to Structure Caching for more information.
USE_CACHE_EXPIRATION
Possible values
0(False) or1(True)
Default value
1
Description
When this setting is 1 (True), before opening the structure cache (.CCH) file the driver will check whether the cache file might be invalid. The driver will compare the date and time of the cache file with the date and time of the DDF files and with the date and time of the .INT file. If the DDFs are newer than the .CCH, the .CCH file will be regenerated.
This value should be set to 0 (False) when using a Novell runtime server.
USE_INT_FILE
Possible values
0(False) or1(True)
Default value
1
Description
When a table is opened using either the prefix method (DFBTRDRV:mytable) or the extension method (mytable.BTR), this setting controls whether an .INT file will be read during the open.
Warning: Setting USE_INT_FILE 0 means that all information from the .INT file will NOT be available after opening the tables. This includes all relationship information. Tables will be opened without relations. Your application must set relations at runtime (soft relates).
Note: If DATABASE_MODE is 1, an .INT file must be present with normal opens, since a URI must be specified in the .INT file. The only way to open tables without an .INT file in DATABASE_MODE is by using an "Open As with Uri".
ZEROFILE_METHOD
Possible values
CREATE,FALLBACKandDELETE
Default value
FALLBACK
Description
This setting controls how a ZEROFILE command is executed:
DELETE— The driver deletes each record from the table by finding and deleting each record. This is the safest but also slowest method.FALLBACK— The driver first tries to create an exact copy of the table without copying the data and replace the original table with the new table. If this method fails the driver will delete all records from the original table using theDELETEmethod.CREATE— The driver always tries to create a new table. If the driver fails, it will generate an error.