Borland’s dBASE product line includes the following versions supported by the Microsoft Jet Xbase IISAM driver: dBASE III, dBASE IV, and dBASE 5.0. dBASE databases differ from Microsoft Jet databases in four major areas: data types, handling of deleted records, specification of indexes, and storage of Long Text (Memo) fields. The following sections describe these differences.
Microsoft Jet translates each dBASE data type into the corresponding Microsoft Jet data type when your application reads the data. The following table shows the one-to-one correspondence between data types.
dBASE data type | Microsoft Jet data type |
Character | Text |
Numeric, Float | Double |
Logical | Boolean |
Date | Date/Time |
Memo | Memo |
OLE | Long Binary (OLE Object) |
When you delete a record from a dBASE table through your application, the record is marked as deleted in the table. The record is not, however, removed from the table because dBASE allows users to recover deleted records until the table is packed. Because you cannot pack a dBASE table through Microsoft Jet, deleted records will continue to appear in your application’s data set.
To force Microsoft Jet to filter out deleted records in a dBASE table, you must set a setting in the registry. You can do this by setting the Deleted setting under the \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\3.5\Engines\Xbase key to 01 (True) and restarting Microsoft Jet. This will hide deleted dBASE records from your application.
You can speed up Microsoft Jet access to dBASE tables by specifying the dBASE .ndx or .mdx index files to use. Index files are specified in an .inf file, which you can create either by linking your dBASE table through the Microsoft Access user interface or by creating a text file with the same file name as your dBASE database and appending an .inf extension. The following procedure describes how to create an .inf file for the hypothetical dBASE database Sales.dbf.
[dBASE III]
NDX1=CUSTNAME.NDX UNDX1=CUSTNO.NDX
[dBASE III] NDX1=CUSTNAME.NDX UNDX1=CUSTNO.NDX
To create an INFPath setting in your registry, you must manually add the registry setting in the Registry Editor as a string value. To add the setting, open the \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\3.5\Engines\Xbase key in the registry. On the Edit menu, point to New, and then click String Value. Type INFPath as the name, and type the full directory or network path to the .inf file in the data field. Save the registry changes and restart Microsoft Jet to use this setting.
Keep in mind that Microsoft Jet will need to periodically update your index files as you change data from within your dBASE database. If you associate index files with a dBASE database that is linked or opened from a Microsoft Jet database, you need to make sure the indexes are available to your Microsoft Jet database as well.
Important Don’t delete or move the index files or the .inf file without updating associated references (such as the registry). If Microsoft Jet doesn’t have access to up-to-date index information, it cannot correctly process queries.
Memo fields for dBASE databases are stored in the file system instead of in the database. If you want to link or open a dBASE database that has Memo fields, make sure the Memo field files are stored in the same directory as the database files.