Welcome to the Borland Database Engine -------------------------------------- This README file contains installation instructions, information about how to contact Borland, and important last-minute information about the Borland Database Engine (BDE). The Borland Database Engine gives developers the opportunity to develop applications with the same database engine that is used in Paradox for Windows, dBASE for Windows, Delphi and ReportSmith. Contents -------- I. Installation and Configuration II. Borland Database Engine Directories III. Overview of Components IV. Programming with the BDE V. Programming with the ODBC Socket VI. Using DLL Swap VII. Using the Database Desktop VIII. Accessing SQL Servers using Native Drivers IX. What's New for this Release X. Getting Help & Reporting Bugs XI. Product Information I. Installation and Configuration ----------------------------------- System requirements: - DOS 3.1 or higher - Windows version 3.1 - 6 MB RAM required, 8 MB recommended - 25 MB free disk space - Follow these steps to install the Borland Database Engine from CD-ROM: 1. Insert the CD-ROM in your CD-ROM drive. (The following instructions assume you are using drive E. Substitute your drive letter if necessary.) 2. Choose File|Run from the Program Manager. The Run dialog box appears. 3. Enter E:SETUP in the Command Line text box. 4. Follow the instructions on the screen. - Follow these steps to install the Borland Database Engine from diskettes: 1. Insert Diskette 1 in a floppy drive. (The following instructions assume you are using drive A. Substitute your drive letter if necessary.) 2. Choose File|Run from the Program Manager. The Run dialog box appears. 3. Enter A:SETUP in the Command Line text box. 4. Follow the instructions on the screen. II. Borland Database Engine Directories ----------------------------------------- If you accepted BDE and IDAPI as the installation directories, the directory structure for the Borland Database Engine is as follows: IDAPI (IDAPI .DLLs and the configuration file IDAPI.CFG) | +--- LANGDRV BDE | +--- BIN | +--- DOC | +--- EXAMPLES | | | +--- C | | | | | +--- ADDRESS | | | | | +--- DBPING | | | | | +--- INVENTRY | | | +--- DELPHI | | | | | +--- FILTER | | | | | +--- TABLEENH | | | | | +--- VCL | | | +--- PASCAL | | | | | +--- EMPLOYEE | | | +--- PDOXWIN | | | | | +--- RESTRUCT | | | | | +--- SEEK | | | +--- QUERY | | | +--- SNIPIT | | | +--- TABLES | +--- INCLUDE | +--- LIB | +--- REDIST | +--- UNITS DBD | +---DBDPRIV III. Overview of Components ----------------------------- Software components The BDE consists of the BDE API and drivers for Paradox, dBASE, ODBC Socket, and Text files. FILELIST.TXT lists the files that make up this release of the Borland Database Engine. After the BDE is installed, you should see icons for SnipIt Code Viewer, Query Manager, DBPing, the BDE on-line help system, various sample applications, the READSDK, the BDE Configuration Utility, the Database Desktop, and the DLL Swapper. Documentation Components Documentation for the Borland Database Engine consists of the Borland Database Engine on-line help, and various text files. The on-line help and the supporting text files can be found in the DOC directory. IV. Programming with the BDE ----------------------------- - All developers using C, or C++, should use the provided IDAPI.LIB library when you link your application. IDAPI.LIB is more than just an import library. It has hooks to locate and load various DLLs. - We recommend that you use DbiQInstantiateAnswer() to save answer tables produced by query functions. This is more efficient than reading and writing one record at a time. - BDE searches for the configuration file in this order: 1. Uses the CFG specified in the DBIEnv structure 2. Checks for a defined CFG file in the WIN.INI file located in your Windows directory. The entry checked for is "[IDAPI]" with an sub-entry of "CONFIGFILE01." 3. Checks for the CFG file in the startup directory. 4. If the CFG file cannot be found, BDE initializes with a predefined set of configuration settings. The default settings include no locking of STANDARD database tables. - BDE\INCLUDE directory needs to be specified before the BORLANDC\INCLUDE directory when using BC 3.1. - If you are using Microsoft C and NMAKE.EXE, make sure that you have the INCLUDE and LIB environment variables set. - For ANSI drivers do not specify "iLen" when calling DbiNativeToAnsi(). Simply translate the entire string. - You must set the "iLen" part of your field descriptors when calling DbiCreateInMemTable(). - The Pascal unit files distributed with the BDE SDK (DBIPROCS.PAS, DBITYPES.PAS, and DBIERRORS.PAS) are NOT intended to be replacements for similarly named Delphi units. They are to be used with BDE-based Borland Pascal programs. The SDK units will have a slightly different interface section than those compiled and provided with Delphi. If you replace the Delphi units, you will not be able to link with other units that are dependent on the Delphi supplied ones. - If there is a new prototype that you wish to access from Delphi you need to either create a DBINEW unit or simply declare the prototypes in the .PAS file of your choice. - We strongly recommend that you use the debug layer during application development and testing. This is done by swapping the IDAPI01.DLL with the DBG.DLL and activating the debug layer with a call to DbiDebugLayerOptions(). Here are some other debug layer details. 1. The debug layer is "shared" among all BDE clients. 2. We strongly recommended that one BDE application be designated to activate and deactivate the debug layer. 3. All applications that use BDE will output trace information after the debug layer has been enabled. 4. See the reference material for DbiDebugLayerOptions() for more details. - Within the BDE Reference Help under "Data Structures"|"CANHdr" there is a "Operator identifying leaf operands" called canTUPLE. This is not a supported operator. In addition the "Arithmetic" and "Aggregate Type" operators listed are not supported. - Within the BDE Reference Help under "Data Structures"|"Data Type Translations" the data type "Money" is converted to Number (20, 4) for dBASE tables not Float (20, 4). - Older versions of the BDECFG.EXE (then called IDAPICFG.EXE) will cause a General Protection Fault if the LDPATH statement in the WIN.INI file points to a directory that contains new or current versions of the BDE files. Use the BDECFG.EXE to avoid this problem. - When using ODBC data sources with the auto odbc option set to true and a driver name greater than 32 characters, IDAPI truncates the name to 32 characters. These truncated drivers do not appear in the driver list within BDECFG.EXE. Therefore they cannot be deleted from the configuration file. Every time that the auto odbc option is set to true these drivers are added repeatedly to the configuration file after every save - thus the configuration file keeps growing and there is no way to remove the excess drivers. To avoid this problem do not use driver names greater than 32 characters in length. V. Programming with the ODBC Socket ------------------------------------- - This release of the Borland Database Engine comes with an ODBC Socket. It has been certified with Microsoft's 2.0 ODBC Driver Manager. The files ODBC.DLL, ODBCINST.DLL and ODBCINST.HLP have been installed into your WINDOWS SYSTEM directory. Proper versioning procedures occur during the install, therefore if you had newer ODBC Driver Manager files already on your system, then they have not been replaced. NOTE: The ODBC 2.0 driver manager does work with ODBC 1.x ODBC drivers. - The driver description in the ODBC.INI must match the driver name exactly as found in ODBCINST.INI in order for the BDE Configuration Utility to add drivers to the BDE configuration file. - For information on how to create an ODBC driver connection and alias, search for "ODBC Driver Connection" in the BDE Configuration Utility on-line help. - When using passthrough SQL functions (DbiQExecDirect), case-sensitive object names should be enclosed by the DBMS-identifier quote character. - ODBC does not support owner-qualified indexes. When using DbiOpenTable, do not specify an owner name with the index parameter. - Physical data type identifiers are composed of a 16-bit number. The high-byte is the driver ID and the low-byte is the ODBC SQL type identifier. To determine the SQL type of a field, use the following algorithm: SWORD iSqlType; iSqlType = (SWORD)(signed char)(0x00FF & pFldDesc->iFldType) The cast to signed char is necessary to preserve the sign information. - Physical types are stored in the SQL_C_ types documented in Microsoft's Open Database Connectivity Software Development Kit, Version 2.0 Appendix D. The only exception is for SQL_VARBINARY types. The first byte specifies the number of bytes of information. - Updateable ODBC queries are not supported with aliases that have the SQLPASSTHRU MODE parameter set to NOT SHARED. The SQLPASSTHRU MODE is a parameter that can be set by the BDE Configuration Utility for each ODBC alias. Database-specific information ----------------------------- - You may encounter problems when copying Oracle tables containing NUMERIC type columns to other Oracle tables. This is a known problem and is fixed in Intersolv ODBC 2.0 Oracle driver. - When specifying NetWare SQL BLOB\MEMO fields, it is necessary to specify an iUnits setting less than or equal to 32765. The default of 32767 that is assumed by the driver is incorrect due to field header information. - When using DbiBatchMove with ebatMode set to batCOPY, BLOB fields that require an iUnits specification default to the maximum allowable size supported. This can cause problems for NetWare SQL users because the BLOB on the target table is set to 32K, exceeding the record buffer limit. - DB2/2 (Database Manager) does not support concatenation operators in queries. - Depending on the SQL server being used, scrolling through a set of records based on a non-unique index does not always show a consistent ordering of NULL index values (i.e. sometimes they will be at BOF and sometimes at EOF). This is the behavior of the server and not IDAPI. - When using the Microsoft 1.0 ODBC Text driver within a BDE program opening a database results in the program's working directory being set to the directory where the Text file is located. This means that runtime functions (i.e. findfirst) are not using the Windows defined working directory but the directory containing the Text database. VI. Using DLL Swap -------------------- It is possible for your DLLs to reach a state that the DLL Swapper will not be able to resolve. If you have IDAPI01.DLL, DBG.DLL, and NODBG.DLL on your disk at the same time, an error message will be displayed. To resolve the conflict, delete either DBG.DLL or NODBG.DLL. You should delete the .DLL that is the same size as the IDAPI01.DLL file. VII. Using the Database Desktop --------------------------------- The Database Desktop is a utility that allows you to create, modify, and restructure Paradox and dBASE tables. It uses BDE for all of its database I/O and requires the BDE configuration file for access to SQL databases. Refer to your Database Desktop on-line help for detailed product information. VIII. Accessing SQL Servers using Native Drivers ------------------------------------------------ This release of the Borland Database Engine has been certified with the Borland SQL Links 2.5 product. Borland SQL Links 2.5 product offers high performance native drivers for InterBase, Oracle, Informix, and MS/SYBASE SQL Server. With Borland SQL Links 2.5 you can build applications and scale them between local and remote data. No other database engine provides this level of scalability! Developers use one API to access all drivers supported by BDE. IX. What's New for this Release ----------------------------------- Local Features - You can now find the BDE documentation on-line (BDE.HLP & LOCALSQL.HLP) - Local SQL has been enhanced. For more information see the Local SQL on-line help file. - Local SQL now supports parameterized queries. See Local SQL on-line help under "Parameter Substitutions in DML Statements". - There are two new functions (DbiAddAlias and DbiDeleteAlias) that allow aliases to be added and deleted from the configuration file. For more information see the BDE on-line help file. - There is now schema support for ASCII tables. See the SNIPIT example (CR8TXTBL.C) for more details. - Support for accessing encrypted dBASE tables is now included. See the SNIPIT example (DBLOGIN.C) for more details. - When trying to open a dBASE table with an invalid index there is now the capability to recieve a callback and determine whether or not to continue opening the table. See the SNIPIT example (INPUTREQ.C) for more details. New Applications - The Database Desktop has been upgraded (version 5.1) to allow access to remote tables as well as local tables. For more information use the Database Desktop on-line help file (DBD.HLP). Changes to Provided Examples The following SNIPIT examples have been added or changed: - FILTCOMP.C: Comparison filter (New) - FILTCONT.C: Continue filter (New) - ADDALIAS.C: Adding and deleting aliases (New) - KEYUPDT.C: Keyed updates (New) - LSQLLIVE.C: Local and remote dynasets (Modified) - SQLBIND.C: Local and remote parameter binding (Modified) - UPDTCRNT.C: Cursor symantics (New) - STORPROC.C: Using stored procedures (New) - CR8TXTBL.C: Text table using a schema file (Modified) - DBLOGIN.C: Accessing encrypted dBASE tables (New) - TEXTEXP.C: Exporting test file using a schema file (Modified) - INPUTREQ.C: Accessing tables with a missing or invalid index (New) The following are examples of using the BDE in a DLL for use with PDOXWIN in OPAL: - SEEK: Search dBASE expression indexes. - RESTRUCT: Restructure a table. The following are examples of using the BDE with Delphi: - FILTER: Using a filter with a TTable - TABLEENH: Creating a new Table derived control with Block functionality. X. Getting Help & Reporting Bugs ------------------------------------- To get technical support from Borland and to report bugs, use CompuServe. Type GO BDEVTOOL from any '!' prompt and leave your message in section 4. For information on phone support contact Borland at (800) 839-9777. XI. Product Information ------------------------ For information about any Borland products, contact Borland in the U.S. at (408) 431-1000. International customers should contact the nearest Borland International office.