BORLAND SQL LINKS FOR WINDOWS TIPS FOR dBASE 5.0 FOR WINDOWS USERS ---------------------------------- This file contains important, late-breaking information about Borland SQL Links that apply only to dBASE for Windows users. For general, late-breaking information on Borland SQL Links for Windows, see READLINK.TXT. * * * * * GENERAL INFORMATION ------------------- INDEXING ONE OR MORE FIELDS WHEN USING CREATE TABLE. When you use CREATE TABLE to create a new SQL table and place an index on one or more fields in the dialog, dBASE creates separate indexes on each field in the index. The Create dialog does not create a unique index. If you want to assign indexes to a new SQL table, do one of the following: - Save the table and then assign the indexes manually, using a command with the format: USE tablename EXCLUSIVE INDEX ON column1,column2 TAG tagname UNIQUE - Use SQLEXEC() to create a server-specific index with SQL statements, such as the following Sybase statement: SQLEXEC ("create unique index indexName on tableName (col1,col2)") MODIFYING DBASEWIN.INI TO SHOW SQL SYSTEM TABLES. If you modify the [Desktop] section of your DBASEWIN.INI file so ShowSystemTables equals one (1), the dBASE Navigator respects this setting. The tables are always visible when you execute the DIR command. SUPPORT FOR ODBC DRIVERS. This release of dBASE for Windows is not certified for use with vendor-supplied ODBC drivers. INTERNATIONAL ISSUES -------------------- CHOOSING A LANGUAGE DRIVER. If you are an international customer, be sure to choose a global language driver whose character set matches the character set of your SQL language driver. In many cases Borland does not provide a global language driver with the character set required for certain SQL tables; for example, language drivers allowing access to HP Roman 8, any ANSI SQL data, or to most UNIX data. For a discussion of what language drivers do and how to choose one correctly, see the Borland SQL Links Getting Started manual. Failure to match language drivers correctly can cause the display of "garbage" characters in your SQL data. If you then attempt to change the data, corruption can re- sult. For example, if you have a German 850 global language driver installed and you access Sybase 850 SQL tables, you can read and write the extended characters correctly. However, if you try to access Sybase 437 SQL tables, some data will be visible but it will include a lot of "garbage" characters. If you try to change it, the data will be corrupted. In this release, dBASE can neither detect nor prevent such actions. USING SEEK AND FIND. When used against international data, the SEEK and FIND functions both behave as if EXACT is turned on. This means that secondary entries are not retrieved; if there are any duplicate entries in the database they are not located. INFORMIX DRIVER --------------- This release of dBASE for Windows is not certified to run with the SQL Link Informix driver. INTERBASE DRIVER ---------------- No issues for this release. ORACLE DRIVER ------------- WORKING WITH NUMERIC FIELDS IN DBASE-TO-ORACLE COPIED TABLES. When a dBASE table is copied to an Oracle table, any numeric data is created as an Oracle NUMBER field with no precision or scale. Oracle's NUMBER datatype can handle floating point numbers with up to 38 digits of precision. USING SQLEXEC() WITH PARADOX-TO-ORACLE COPIED TABLES. When you query an Oracle database and your target is a table that was copied from Paradox to Oracle, be sure to place quotes around all mixed-case column names. CHANGING RECORDS AND BROWSING. When you replace an Oracle character string with an empty (blank) string and then browse, dBASE appears to display duplicate records. This is a visual problem only; the records are not really duplicated. If you then attempt to modify one of these "duplicate" records while in BROWSE mode, you may receive the error message "Record/Key deleted." To eliminate the "duplicate" records, close the browse window and REFRESH the screen. Then re-enter BROWSE mode. SYBASE DRIVER ------------- USING INSERT TRIGGERS THAT CONTAIN THE RAISERROR MESSAGE. If you use a Sybase table with an insert trigger that uses RAISERROR, a KeyViolation Error always follows the Raiserror message. This prevents users from inserting any records from that point afterward.