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>
This commit is contained in:
@@ -0,0 +1,469 @@
|
||||
|
||||
============================================================
|
||||
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.
|
||||
|
||||
============================================================
|
||||
|
||||
|
||||
Reference in New Issue
Block a user