Files
TeslaRel410/BORLAND/IDAPI/READLINK.TXT
T
CydandClaude Fable 5 63312e07f9 source410: literal 4.10 source reconstruction + BC++ 4.52 fleet toolchain archived
- 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>
2026-07-19 07:33:26 -05:00

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.
============================================================