- BORLAND/: Borland C++ 4.52 (chosen over 4.5 by byte-match: CODE/RP/CW32.LIB
is identical to 4.52's install lib). BCC32/TLINK32/TLIB/MAKE run natively on
Win11; CODE/BT/OPT.MAK is the shipped BTL4OPT.EXE's exact flag recipe
(extender = Borland PowerPack DPMI32, not Phar Lap TNT).
- restoration/source410/: the literal 1995-form reconstruction of the missing
BT game source (never mixed into CODE/). Round 1-3 state:
* 6 of 10 surviving original TUs COMPILE CLEAN under the period toolchain
(BTMSSN, BTCNSL, BTSCNRL, BTTEAM, BTL4MODE, BTL4ARND) - first builds
since 1996.
* BT_L4/BTL4APP.CPP pilot reconstruction: 12/12 functions, Fail() lands on
its binary-recorded line 400 exactly.
* BT/BTCNSL.HPP: console wire IDs recovered from the binary's ctors
(Killed=9, Damaged=10, ScoreUpdate=13, DeathWithoutHonor=15 [T1];
TeamScore=12 flagged [T4]).
* MUNGA/: 8 engine-header backfills back-dated from the BT412 WinTesla tree
(VDATA numbering decomp-verified; AUDREND's OpenAL-era virtual removed -
the period compiler is the drift detector).
* Tooling: backdate.py (WinTesla->1995 header transform), compile410.sh
(per-TU verification sweep under authentic OPT.MAK flags).
* README: corrected roadmap - MECH.HPP is the capstone grown with the mech
TU reconstructions; BTREG.CPP green = the header-family milestone.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
469 lines
17 KiB
Plaintext
469 lines
17 KiB
Plaintext
|
|
============================================================
|
|
WELCOME TO BORLAND SQL LINKS 2.5 FOR WINDOWS
|
|
--------------------------------------------
|
|
|
|
This file contains important, late-breaking information
|
|
about Borland SQL Links for Windows, including revisions
|
|
to the documentation. Information in this file supercedes
|
|
information in the SQL Links documentation.
|
|
|
|
|
|
TABLE OF CONTENTS
|
|
-----------------
|
|
|
|
1. TIPS FOR USING SQL LINKS
|
|
2. KNOWN PROBLEMS
|
|
3. INTERBASE SQL LINK DRIVER
|
|
4. INFORMIX SQL LINK DRIVER
|
|
5. ORACLE SQL LINK DRIVER
|
|
6. SYBASE SQL LINK DRIVER
|
|
|
|
|
|
1. TIPS FOR USING SQL LINKS
|
|
---------------------------
|
|
|
|
VENDOR DLLs
|
|
If a vendor DLL is not found on the system, check the
|
|
WINDOWS\SYSTEM directory.
|
|
|
|
USING ALIASES WITHOUT SPECIFYING A LANGUAGE DRIVER
|
|
If no language driver is specified, the default language
|
|
driver is ASCII. Language-specific processes like
|
|
character translation, sorting and table name validation
|
|
will default to U.S. rules. For further information, see
|
|
Chapter 3 of Borland SQL Links for Windows Getting Started
|
|
and your driver's Connecting to... manual.
|
|
|
|
WORKING WITH LARGE TABLES
|
|
If you create data entry forms on large tables you might
|
|
find some performance degradation,particularly if the user
|
|
is allowed to view unrestricted record sets. The following
|
|
suggestions can help cut down the load on your server and
|
|
optimize server performance:
|
|
|
|
- With large data sets, try to write applications that
|
|
access relatively few records at a time. One way to do
|
|
this within a form-based application is to create forms
|
|
that order the data by index and set range criteria to
|
|
limit the record set. (For example, instead of
|
|
creating a form that displays all orders for all
|
|
customers, write your application to limit the user's
|
|
working selection by criteria such as customer name,
|
|
state, and area code.)
|
|
|
|
- Where possible, create applications that order on
|
|
fields created with the REQUIRED (NOT NULL) option.
|
|
Because this field property must be specified at
|
|
the time of table creation, be sure to plan for this
|
|
as part of your application design.
|
|
|
|
WORKING WITH "SNAPSHOTS" (TABLES WITHOUT A UNIQUE INDEX OR
|
|
ROW ID)
|
|
If you insert records into a "snapshot" table, you might
|
|
need to close and reopen the table to see your additions.
|
|
|
|
NEW STATEMENT ROW COUNT PROPERTY
|
|
The new statement property, stmtROWCOUNT, can be used with
|
|
DbiGetProp for retrieving the effected row count of
|
|
DELETE/UPDATE/INSERT statements.
|
|
|
|
SYNONYM AND CROSS DATABASE / CROSS SERVER TABLE ACCESS
|
|
Oracle and Informix synonyms can now be accessed using
|
|
DbiOpenTable and DbiQPrepareExt. Tables on different
|
|
databases or servers can also be accessed in the same way.
|
|
For example, you can now open "SCOTT"."CUSTOMER"@"DBLINK"
|
|
on Oracle and pubs.dbo.authors on Sybase.
|
|
|
|
UPDATEABLE SQL QUERIES
|
|
Updateable SQL 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 SQL alias.
|
|
|
|
2. KNOWN PROBLEMS
|
|
-----------------
|
|
|
|
UPDATING SNAPSHOTS--TABLES WITHOUT UNIQUE INDEX OR ROW ID
|
|
When working with a table that does not have
|
|
a unique index or row ID, keep the following in mind:
|
|
|
|
- The SQL Links do not support record modifications
|
|
and deletions on "snapshots" within an explicit
|
|
client transaction. Emptying tables is supported
|
|
within an explicit client transaction, but rolling
|
|
back such an operation does not update the internal
|
|
record cache.
|
|
|
|
- To update the record cache, close the table and then
|
|
open it again.
|
|
|
|
UPDATEABLE SQL QUERIES
|
|
Tables owned by another user must be qualifed by owner
|
|
name. Use quotation marks around the entire qualified
|
|
name, for example "OWNER.TABLE".
|
|
|
|
|
|
3. INTERBASE DRIVER
|
|
-------------------
|
|
|
|
INTERBASE SQL LINK and LOCAL INTERBASE SERVER
|
|
InterBase SQL Link installs a subset of the InterBase vendor
|
|
DLLs necessary for Local InterBase Server. If you have an
|
|
earlier version of Local InterBase Server on your computer
|
|
when you install InterBase SQL Link, be sure to upgrade
|
|
with the latest version.
|
|
|
|
CONNECTING VIA FTP PC/TCP
|
|
The connection to InterBase via FTP PC/TCP is sensitive to
|
|
the amount of conventional memory available to DOS before
|
|
Windows is started. You
|
|
need at least 440 KB to use this connection protocol.
|
|
|
|
ADDITIONAL VENDOR DLLs
|
|
IUTLS.DLL and DSQL.DLL have been added.
|
|
|
|
ADDITIONAL TRANSACTION ISOLATION LEVEL SUPPORT
|
|
Read Committed is now supported.
|
|
|
|
SETTING INTERBASE DRIVER FLAGS
|
|
Specifying a Read Committed transaction isolation level
|
|
can result in incompatibility with applications using
|
|
earlier versions of SQL Links for InterBase.
|
|
Earlier versions of SQL Links supported Reapeatable
|
|
Read only. To maintain transaction support compatibility
|
|
with earlier versions of SQL Links, use the BDE
|
|
Configuration Utility to set the DRIVER FLAGS option to 512.
|
|
|
|
|
|
4. INFORMIX DRIVER
|
|
------------------
|
|
|
|
This release of Borland SQL Link includes two Informix
|
|
drivers:
|
|
SQLD_IN5.DLL
|
|
SQLD_INF.DLL
|
|
|
|
SQLD_IN5.DLL is an ESQL/C 5.x application supporting
|
|
INFORMIX-NET for Windows Version 5.x. This driver supports
|
|
multiple connections per workstation. When installing this
|
|
driver, no Informix vendor support files are installed.
|
|
All vendor files, such as LDLLSQLW.DLL, must be acquired
|
|
directly from Informix. INFORMIX-NET for Windows Version
|
|
5.x supports any WINSOCK 1.1 Compliant DLL.
|
|
|
|
SQLD_INF.DLL is an ESQL/C 4.x application supporting
|
|
INFORMIX-NET PC Version 4.x. This driver is limited to
|
|
one connection per workstation and may encounter some
|
|
limitations with the INFORMIX LDLLSQLW.DLL (version 4.x)
|
|
file.
|
|
|
|
BDECFG.EXE & INFORMIX TSR (Informix ESQL/C 4.x driver ONLY)
|
|
The Informix TSR contains entries for HOST NAME, USER NAME,
|
|
and PASSWORD that over-ride any entries for SERVER NAME,
|
|
USER NAME, and PASSWORD set for the Informix driver
|
|
by using the BDE Configuration Utility. This is necessary
|
|
because you cannot set or change SERVER NAME, USER NAME
|
|
and PASSWORD from within your BDE application. Your BDE
|
|
application accesses the database specified in the BDE
|
|
configuration file (usually called IDAPI.CFG), but the
|
|
server name, user name and password will always reflect
|
|
what was set up through the Informix REMSQL or SETNET
|
|
programs.
|
|
|
|
For ANSI-compliant databases, the user name specified in
|
|
the configuration file is used to qualify object names
|
|
when accessing tables. If you encounter privilege problems,
|
|
make sure that the USER NAME in your configuration file
|
|
matches the USER NAME that was specified when REMSQL or
|
|
SETNET was executed.
|
|
|
|
WINDOWS MEMORY PROBLEMS AND CONNECTING TO INFORMIX
|
|
If there are a number of Windows applications open when
|
|
you attempt to connect to Informix through your BDE
|
|
application, you may see Informix error message #837:
|
|
|
|
Not enough memory available.
|
|
|
|
Exit Windows, then re-start Windows and your BDE
|
|
application. If the problem continues you might need
|
|
more workstation memory.
|
|
|
|
LIMITATIONS ON OPENING TABLES
|
|
This edition of the Informix SQL Link driver does not
|
|
support opening a table with a column name that is an
|
|
Informix keyword or function name. Some examples include
|
|
MONTH, DAY, YEAR, AVG, COUNT, ALL, and UNIQUE.
|
|
|
|
For a complete list of keywords and function names, see
|
|
your Informix documentation.
|
|
|
|
COPYING INFORMIX TABLE WITH INTERVAL COLUMN
|
|
When an Informix table with an interval column is copied,
|
|
the destination table is created with an interval that has
|
|
a qualifier of year-to-month. If this qualifier does not
|
|
match the source table's interval qualifier, you will
|
|
receive an error during the copy.
|
|
|
|
To work around this problem, use passthrough SQL to
|
|
create the destination table with the correct interval
|
|
qualifier. Then append the contents of the source table
|
|
to the destination table.
|
|
|
|
INFORMIX ERROR MESSAGES WITH EMBEDDED FORMAT STRINGS
|
|
For certain error messages (such as "Table not found"),
|
|
the Informix error message contains an embedded "%s"
|
|
instead of a variable name.
|
|
|
|
FTP/INFORMIX CONNECTION WITH INFORMIX NET PC 4.X AND FTP
|
|
System configuration: The dos path should include:
|
|
C:\PCTCP;C:\INFORMIX\BIN
|
|
Enter in your AUTOEXEC.BAT (by using odi and PCTCP
|
|
dos/win network drivers) SET FTP_ETC=C:\ETC
|
|
(per Informix docs if using FTP software)
|
|
|
|
|
|
STORED PROCEDURE SUPPORT IN SQLD_IN5.DLL
|
|
The new Informix driver supports stored procedures.
|
|
Please note the following points:
|
|
|
|
1. Informix stored procedures have input params but
|
|
no output parameters.
|
|
|
|
2. DbiOpenSPParamList returns all input parameters
|
|
and sets SPParamDesc.uParamNum and SPParamDesc.szName
|
|
starting from 1.
|
|
|
|
SPParamDesc[0].uParamNum = 1
|
|
SPParamDesc[0].szName = "1"
|
|
and SPParamDesc[0].eParamType = paramIN;
|
|
.
|
|
.
|
|
.
|
|
|
|
The rest of the information for SPParamDescs
|
|
(such as uFldType, usubType, iUnits1, iUnits2, uOffset,
|
|
uLen, and uNullOffset) must be set by user.
|
|
|
|
|
|
|
|
|
|
|
|
5. ORACLE DRIVER
|
|
----------------
|
|
|
|
SUPPORT FOR QUOTED OBJECT NAMES
|
|
This release of SQL Links supports the creation of Oracle
|
|
tables with quoted object names. Object names enclosed
|
|
in double quotation marks may contain spaces, special
|
|
characters, reserved words, or mixed case. When querying
|
|
a table with special object names, be sure to enclose the
|
|
name in double quotation marks. For example:
|
|
|
|
SELECT * from "Customer"
|
|
|
|
For more information on object naming rules, see your
|
|
Oracle server documentation.
|
|
|
|
ADDITIONAL TRANSACTION ISOLATION LEVEL SUPPORT
|
|
Repeatable Read is now supported. A Repeatable Read
|
|
transaction is always read-only.
|
|
|
|
SETTING ORACLE DRIVER FLAGS
|
|
Using mixed-case object names can result in incompatibility
|
|
with earlier versions of SQL Links for Oracle. Earlier
|
|
versions of SQL Links used uppercase object names only. To
|
|
use uppercase object names only, set the DRIVER FLAGS option
|
|
to 1 using the BDE Configuration Utility.
|
|
|
|
Specifying a Repeatable Read transaction isolation level
|
|
can result in incompatibility with applications using earlier
|
|
versions of SQL Links for Oracle. Earlier versions of SQL
|
|
Links supported Read Committed only. To maintain transaction
|
|
support compatibility with earlier versions of SQL Links, use
|
|
the BDE Configuration Utility to set the DRIVER FLAGS option
|
|
to 512.
|
|
|
|
To use uppercase object names only AND maintain transaction
|
|
support compatibility with earlier versions of SQL Links, use
|
|
the BDE Configuration Utility to set the DRIVER FLAGS option
|
|
to 513 (representing 512+1).
|
|
|
|
TRANSLATING AN ORACLE DATE FIELD TO dBASE
|
|
In Table 1.8 of CONNECTING TO ORACLE it is stated that Oracle
|
|
DATE fields translate to dBASE DATE fields. This is
|
|
incorrect. They actually translate to dBASE character fields
|
|
with date and time information.
|
|
|
|
RUNNING NETINIT.EXE BEFORE STARTING YOUR BDE APPLICATION
|
|
If you are using SQL*Net for DOS, depending
|
|
on your system memory configuration you may need to load
|
|
the Oracle NetInit program (NETINIT.EXE) before you start
|
|
your BDE application.
|
|
|
|
ORACLE UPDATEABLE QUERIES
|
|
All names, both column and table,
|
|
are case sensitive (as if they were quoted explicitly).
|
|
|
|
ORACLE BLOCK WRITE SUPPORT
|
|
Support for Oracle array binding
|
|
in this release shows improved performance for block writes
|
|
when using DbiBatchMove and DbiWriteBlock.
|
|
|
|
SQL LINK UNDER OS/2 WARP WITH IBM TCP/IP 2.0 NETWORK
|
|
CONNECTION
|
|
You must install three layers:
|
|
|
|
a) Oracle CDE CASE Tools, Version 5.1, Windows and Win-OS/2
|
|
b) Oracle Products for Windows, Version 7.1, 2/1/95
|
|
c) SQL VDM to interface the DOS-to-OS2 connection
|
|
|
|
CONFIGURING BDE FOR USE WITH ORACLE SQL*NET V2.0
|
|
In all cases you need to make sure that the 'Network
|
|
Protocol' entry is blank in the alias manager.
|
|
Also make sure that the SQL Link Oracle driver's
|
|
(not just the alias) "Net Protocol" is blank.
|
|
Using the BDE Configuration Utility, enter:
|
|
|
|
TNS:myservername
|
|
|
|
into the 'Server Name' setting - also in the alias manager
|
|
(if you configured only for one server it might be necessary
|
|
to type in 'TNS' for the 'Server Name')
|
|
|
|
|
|
PERSONAL ORACLE7 CONNECTION ISSUES
|
|
Possible solution to Error Message:
|
|
(ORA-01034 Oracle7 not Available),when trying to connect
|
|
to Personal Oracle7: Make sure Personal Oracle7 is loaded
|
|
and running before trying to connect via the Alias Manager.
|
|
(The username is oracle7 and the password is oracle).
|
|
|
|
Possible solution to Error Message:
|
|
(ORA-03121 NO INTERFACE DRIVER CONNECTED), when trying to
|
|
connect to Personal Oracle7.
|
|
|
|
In the BDE Configuration Utility,
|
|
1) Set Vendor Init to ORA7WIN.DLL.
|
|
2) Set NET PROTOCOL to blank.
|
|
|
|
In ORACLE.INI,
|
|
1) Remark out any settings referring to -
|
|
LOCAL=X:SERVERNAME (it should be LOCAL=2:)
|
|
REMOTE=X:SERVERNAME
|
|
|
|
In Alias Manager,
|
|
1) Net Protocol = 2
|
|
2) Server Name = SERVERNAME
|
|
|
|
Possible solution to Error Message:
|
|
"ORA-09368: Windows 3.1 Two-Task driver unable to spawn
|
|
Oracle." If you get this when trying to start Personal
|
|
Oracle7 (via Oracle Database Manager), it might mean that
|
|
you are low on Windows resources.
|
|
|
|
|
|
6. SYBASE DRIVER
|
|
----------------
|
|
|
|
ADDITIONAL TRANSACTION ISOLATION LEVEL SUPPORT
|
|
An error (DBIERR_NOTSUPPORTED) is returned if
|
|
Repeatable Read is specified.
|
|
|
|
Specifying a Repeatable Read transaction isolation level
|
|
might result in incompatibility with applications using
|
|
earlier versions of SQL Links for Sybase. Earlier versions
|
|
of SQL Links supported Read Committed only. To maintain
|
|
transaction support compatibility with earlier versions
|
|
of SQL Links, use the BDE Configuration Utility to set
|
|
the DRIVER FLAGS option to 512.
|
|
|
|
USING DEFAULT SYBASE DRIVER FLAGS SETTING
|
|
If your Sybase SQL Server faults while executing BLOB reads
|
|
or BLOB writes, check the SQL Link driver's DRIVER FLAGS
|
|
parameter. If DRIVER FLAGS is set to 0 (the Sybase
|
|
default):
|
|
|
|
1. Call Sybase Customer Support and describe the
|
|
problem, referencing Case #125046.
|
|
|
|
2. Set the DRIVER FLAGS parameter to 1. Use this
|
|
DRIVER FLAGS setting until you receive the necessary
|
|
software fix from Sybase.
|
|
|
|
Setting DRIVER FLAGS to 1 will enable you to execute BLOB
|
|
reads and BLOB writes without causing a server fault.
|
|
This may cause the client to receive SQL Server timeouts
|
|
during BLOB writes.
|
|
|
|
To execute BLOB reads and writes AND maintain transaction
|
|
support compatibility with earlier versions of SQL Links,
|
|
use the BDE Configuration Utility to set the DRIVER FLAGS
|
|
option to 513 (representing 512+1).
|
|
|
|
MULTIPLE RESULT SETS
|
|
The Sybase SQL Link driver does not support the use of
|
|
stored procedures that return multiple answer sets.
|
|
|
|
SYBASE INDEX HINT FOR UPDATEABLE QUERIES
|
|
This release of SQL Link has added support for Sybase's
|
|
forceindex hint for query optimization when performing
|
|
updateable queries. For example, the following query is
|
|
now a valid updateable query:
|
|
SELECT * FROM CUSTOMER (2)
|
|
|
|
SYBASE URGENT PARAMETER AND TABLE CLOSE PERFORMANCE
|
|
The use of the URGENT parameter is supported by the named
|
|
pipes driver, the Novell NetWare networking software
|
|
(SPX/IPX) as well as many TCP/IP networking packages:
|
|
(Note: the dll's specified in the following examples are
|
|
network and network transport specific.)
|
|
|
|
myNLMsrvr=C:\SQL\BIN\WDBNOVSP,04200020,1,83BD,URGENT
|
|
myUNIXsrvr=C:\SQL\BIN\WDBNOVTC, 128.0.168.245, 1425, URGENT
|
|
myNamedPipesrvr=C:\SQL\BIN\DLL_NAME,\\MY_SRVR\ROOT, URGENT
|
|
|
|
The Sybase Open Client documentation erroneously notes that
|
|
Novell's LanWorkPlace does not support the URGENT parameter.
|
|
You actually need a version of LanWorkPlace version later
|
|
than 4.0 Lan WorkPlace for OS/2 is compatible only with
|
|
version 3.0.
|
|
|
|
Certain DB-Library (W3DBLIB.DLL) versions may not work
|
|
properly regarding dbcancel() (Files dated 10-09-92 and
|
|
6-1-94 may be among these.)
|
|
|
|
URGENT requires Out of Band Data (OOBD) support and is
|
|
necessary for Sybase's dbcancel() to work effectively.
|
|
Dbcancel() is called to cancel the retrieval of un-read
|
|
result sets.
|
|
|
|
In order to properly support OOBD, your Solaris-based
|
|
server may need a call to ndd to set its
|
|
tcp_rexmit_interval_max parm.
|
|
The call is:
|
|
|
|
/usr/sbin/ndd -set /dev/tcp tcp_rexmit_interval_max nnnn
|
|
|
|
where nnnn is a number of milliseconds.
|
|
|
|
You might see a delay when clicking on the master grid of
|
|
a master-detail form - the query to retrieve the data for
|
|
the detail might not return for several minutes.
|
|
|
|
By default, the TCP protocol will wait until a packet is
|
|
full before sending it. This will generally help packet
|
|
transmission over large networks because it cuts down on
|
|
the number of packets sent. This can often slow the
|
|
performance of client applications. If the server needs
|
|
to send 750 bytes to an application and is using 512-byte
|
|
packets, the client will see a delay while the server waits
|
|
on 274 bytes of additional data.
|
|
|
|
It might be possible to disable this on the SQL Server
|
|
itself. This can be done by adding a trace flag to the
|
|
RUN_SERVER file, -T1610.
|
|
|
|
============================================================
|
|
|
|
|