Welcome to the Delphi 3 Client/Server Suite

    Contents:

    WHERE TO FIND INFORMATION
    CONTACTING BORLAND
    CD-ROM DIRECTORY OVERVIEW
    DEMO APPLICATIONS
    INTRABUILDER TRIAL
    C++BUILDER TRIAL
    DOCUMENTATION UPDATES
    KNOWN PROBLEMS


WHERE TO FIND INFORMATION

This file contains last-minute information about Delphi 3.

    *********************************************************

     Before distributing applications developed with Delphi,
     please read the guidelines in DEPLOY.TXT (on the Delphi
     CD or in the Delphi 3 directory).

    *********************************************************

For installation instructions and minimum system requirements,
see INSTALL.TXT (on the Delphi CD or in the Delphi 3 directory).

For an overview of Delphi and a list of new features, select
Help|What's New from the Delphi main menu.

For information about migrating from previous releases of Delphi,
including maintenance of legacy applications and installation of
third-party components, see the Compatibility With Version 2
topic in the online Help.

For detailed documentation, see the online Help and printed
manuals that accompany this release. Additional documents are
on the Delphi CD in the INFO\BORLAND directory. Check Borland's
Web site at http://www.borland.com/ for documentation updates
and other information.

NOTE: All printed and online documentation assume that you
have installed Delphi using the default directory structure.


Online Resources
----------------
You can get information from any of these online sources:

World Wide Web:    http://www.borland.com/

FTP:               ftp.borland.com
                   Technical documents available by anonymous ftp.

Listserv:          To subscribe to electronic newsletters, use
                   the online form at
                    http://www.borland.com/feedback/listserv.html
                   or, for Borland's international listserver,
                    http://www.borland.com/feedback/intlist.html.

TECHFAX            1-800-822-4269 (North America)
                   Technical documents available by fax.


  World Wide Web
  --------------
  Check Borland's Web site regularly. The Delphi Product Team
  will post white papers, competitive analyses, answers to
  frequently asked questions, sample applications, updated
  software, and information about new and existing products.
  You may want to check these URLs in particular:

      http://www.borland.com/delphi/
      http://www.borland.com/techsupport/delphi/
      http://www.borland.com/techsupport/delphi/downloads/
        (updated Help, software, and other files)
      http://www.borland.com/delphi/cpp/
        (information for C++ programmers)
      http://www.borland.com/delphi/vb/
        (information for Visual Basic programmers)

  If you register with Borland Online, you can participate in
  threaded discussion groups devoted to Delphi.

  Newsgroups
  ----------
  The following Usenet groups are devoted to Delphi and related
  programming issues:

          news:comp.lang.pascal.delphi.misc
          news:comp.lang.pascal.delphi.components
          news:comp.lang.pascal.delphi.components.misc
          news:comp.lang.pascal.delphi.components.usage
          news:comp.lang.pascal.delphi.components.writing
          news:comp.lang.pascal.delphi.databases
          news:comp.lang.pascal.delphi.advocacy
          news:comp.lang.pascal.delphi.announce
          news:comp.lang.pascal.borland

  These newsgroups are maintained by users and are not
  official Borland sites.


CONTACTING BORLAND

Installation Assistance and Developer Support
---------------------------------------------
Borland offers a range of support services for Delphi
and other tools. For information, see our World Wide
Web site at http://www.borland.com/.

For assistance outside of North America, contact your
local Borland representative. For a list of offices and
distributors world-wide, see http://www.borland.com/bww/.


CD-ROM DIRECTORY OVERVIEW

The Delphi CD ROM includes the following files and directories.

 [root]      Contains files used for installation and
             registration as well as these important documents:

    INSTALL.TXT  Installation instructions.

    README.TXT   Release notes, last-minute documentation,
                 and a list of known problems.

    LICENSE.TXT  The Delphi license agreement.

    DEPLOY.TXT   Information about deploying Delphi applications.

 \INSTALL    Contains the setup program and related files.

 \IB95SRVR   Contains the InterBase Server for Windows 95.
             (Delphi Client/Server only.)

 \INFO       Contains subdirectories with information and
             third-party demo products. The \INFO\EXTRAS
             directory contains source code and other files
             for JPEG and FIF graphics formats, and for
             data-compression algorithms; for more information,
             see INFO\EXTRAS\EXTRAS.TXT.

 \IE3        Contains Microsoft's Internet Explorer 3.01.

 \TRIALS     Contains trial versions of the IntraBuilder Web
             application development tool (in \TRIALS\INTRABLD)
             and of C++Builder, Borland's rapid application
             development tool for C++ programmers
             (in \TRIALS\CBUILDER).

 \ISXPRESS   Contains InstallShield Express, a customized
             application deployment tool for Delphi 3, the
             BDE, and related software.

 \LOCALIB    Contains the Local InterBase software.
             (Delphi Client/Server and Delphi Professional.)

 \OLENT      Contains the OLEnterprise setup program.
             OLEnterprise, with the Business Object Broker,
             provides an OLE/DCOM interface to any RPC or
             COM server. (Delphi Client/Server only.)

 \RUNIMAGE   Contains a complete Delphi installation. All
             files are unpacked and in the default directory
             structure.

 \SQL16      Contains 16-bit SQL links for use with
             Delphi Client/Server. Run SETUP.EXE (in the
             \SQL16\DISK1 subdirectory) to install SQL Links.
             (Delphi Client/Server only.)

 \DELPHI16   Contains the last 16-bit release of Delphi
             (version 1.02). Run SETUP.EXE (in the
             \DELPHI16\INSTALL subdirectory) to install.


DEMO APPLICATIONS

Sample programs, including the ones listed below, are
Installed with Delphi in the Delphi 3\Demos\... directory.
To build these demos, compile the appropriate .DPR file.

  DelCtrls (in ...\ActiveX\Delctrls) includes standard Delphi
    components in an ActiveX control.

  TRegSvr (in ...\ActiveX\Tregsvr) is a utility that registers
    ActiveX servers.

  Webbrows (in ...\Coolstuf) uses the new TToolBar, TCoolBar,
    and TAnimate components in a Web browser. (Another Web
    browser, also called Webbrows, is in ...\Internet\Html.)

  HTTPDemo (in ...\Internet\HTTP) implements a web browser that
    retrieves the contents of a document from an HTTP server.

  EmpEdit (in ...\DB\Clientds) uses TClientDataSet to create an
    editable employee table. The client application is in
    EMPEDIT.DPR and the server application is in SERVER.DPR.

  WebServ (in ...\Webserv) is an ISAPI Web-server database
    application that uses the new Internet components. The first
    Web page shows a list of customers and company names, with
    hypertext links to each company's Web page.

  Ftp (in ...\Internet\Ftp) is a File Transfer Protocol component
    that displays and manipulates files on an FTP server.

  NNTPDemo (in ...\Internet\Nntp) is a Usenet newsgroup browser.

  SimpMail (in ...\Internet\Simpmail) is an SMTP/POP mail client.

  Chat (in ...\Internet\Chat) is an Internet Chat application
    that uses the Client and Server socket components.

  DChat (in ...\Internet\Tcp) is a "talk" program that uses the
    TCP component to transfer text from one computer to another.

  RichEdit (in ...\Richedit) demonstrates the TRichEdit control.

  ...\DEMOS\DB contains additional database sample projects.
  Data used by these examples is in ...\DEMOS\DATA.

  ...\DEMOS\DOC contains sample projects from the printed
    documentation.

  ...\DEMOS\DATA contains data used by sample programs.


INTRABUILDER TRIAL

The Delphi CD includes a free 30-day trial edition of Borland's
IntraBuilder. IntraBuilder is a visual JavaScript toolset that
has everything you need to build and maintain live, data-driven
Web applications and run them on your Web server. To view a
self-running demo, or to install the trial version of
IntraBuilder, run SETUP.EXE in the \TRIALS\INTRABLD directory
of the Delphi CD.

For more information about IntraBuilder, see
http://www.borland.com/intrabuilder/.


C++BUILDER TRIAL

The Delphi CD includes a trial edition of C++Builder, Borland's
rapid application development tool for C++ programming. To
install the trial version of C++Builder, run SETUP.EXE in the
\TRIALS\CBUILDER\SETUP directory of the Delphi CD.

For more information about C++Builder, see
http://www.borland.com/bcppbuilder/


DOCUMENTATION UPDATES

VCL documentation and online Help
---------------------------------
The VCL reference material in the online Help is more up to date
than the printed version. The following methods are documented
only online:

  TApplication.NormalizeAllTopMosts
  TCustomForm.WantChildKey (overridden in TActiveForm)
  TOleContainer.SaveAsDocument

The correct syntax for the TApplication.MessageBox method is
in the online Help. Help entries for the TTable, TImage, and
TBDEDataSet objects, among others, have also been revised.

Due to limitations in the WinHelp compiler, Windows API Help
topics do not appear in the Delphi Help index. However, these
topics are available from the Delphi IDE's context-sensitive
Help system; if you select a Windows API function in the Code
editor and press F1, the appropriate Windows Help topic will
appear. To see an index of Windows API Help topics, access
the Windows API Help directly. The easiest way to do this is 
to add a button to the speedbar: Right-click on the
speedbar and select Properties to open the Speedbar editor;
select Help from the Categories list and drag the
Windows API Help icon from the Commands list to your
speedbar; then close the Speedbar editor.

Components on the Win 3.1 palette page are not linked to the
context-sensitive online Help system. For documentation on
these legacy components, refer to the DELPHI.HLP file located
in \Delphi16\Runimage\Delphi\Bin on your Delphi CD.

Two components on the ActiveX palette page are not linked to
the context-sensitive online Help system. For documentation
on the VtChart control, see Delphi 3\OCX\Vci\Impress\Vcfi.hlp.
For documentation on the Graph Custom Control, see
Delphi 3\OCX\Pinnacle\Graph.hlp.

The SQL Monitor is not linked to the context-sensitive online
Help. For documentation on this feature, go to the SQL Monitor
topic in the Help index.

Some database example programs contain hard-coded directory
paths. To make these examples compile, you may need to change
the directory paths.

COMCTL32
--------
Several of the components on the Win32 palette page function
best with the latest version (4.70) of COMCTL32.DLL. TCoolBar
and TDateTimePicker will not work at all unless version 4.70
or later is installed. In addition, the following properties
require version 4.70:

TToolBar.DisabledImages
TToolBar.Flat
TToolBar.HotImages
TToolBar.Images

TTabControl.HotTrack
TTabControl.ScrollOpposite 
TTabControl.TabPosition

TPageControl.HotTrack
TPageControl.ScrollOpposite 
TPageControl.TabPosition

TListView.Checkboxes
TListView.HotTrack
TListView.GridLines
TListView.RowSelect
TListItem.Checked

The Min, Max, and Position properties of TProgressBar must
fall within the range of 0 - 65535 if the installed version
of COMCTL32.DLL is less than 4.70.

TCookie and TCookieCollection
-----------------------------
The HTTPApp unit contains two new classes, TCookie and
TCookieCollection, that descend from TCollectionItem and
TCollection, respectively. TCookie represents a cookie
sent with an HTTP response; it has properties that correspond
to fields of the cookie. (See the cookie documentation available
from Netscape's Web site.) The Cookies property of TCGIResponse
or TISAPIResponse is the name of the TCookieCollection that
contains the TCookie objects.

TToolBar.Wrapable and TToolButton.Wrap
--------------------------------------
The Wrapable property of TToolBar enables automatic line-wrapping
for controls on the tool bar. The TToolButton.Wrap property, used
to force a line break, is disabled when TToolBar.Wrapable is True.

TSpeedButton
------------
To create a speed button with a client-aligned glyph that
covers the button's edges, add a 1-pixel border around the
button's top and left edges and a 3-pixel border around its
bottom and right edges.

OpenDatabase and CloseDatabase
------------------------------
TDBDataSet surfaces two methods, OpenDatabase and CloseDatabase,
that open and close the database specified by DatabaseName. These
methods are inherited from TDataSet, where they are protected.

Check Constraint Objects
------------------------
The TCheckConstraint and TCheckConstraints objects represent
record-level constraints, not field-level constraints (as stated
in the Help).

UpdateMode
----------
TQueryTable and TTable surface the UpdateMode property, which
is protected in TDBDataSet. UpdateMode determines how the BDE
finds records being updated in an SQL database. It can take the
value upWhereAll (the default), upWhereChanged, or UpWhereOnly:

  upWhereAll = All columns are used to find the record.
  upWhereChanged = Only the key columns are used to find the
    record.
  UpWhereOnly = Only key columns and columns that have changed
    are used to find the record.

TimeOut (TWinSocketStream)
--------------------------
TWinSocketStream has a TimeOut property that indicates how long,
in milliseconds, the socket should attempt a read or write
operation before timing out. (Hence these operations need not
time out after 20 seconds, as documented.) The initial value for
TimeOut is passed to the constructor as a second parameter, but
it can be changed later.

Decision Support Components
---------------------------
When you use the Decision Query editor to create a query in
TDecisionQuery, the query is initially handled in ANSI-92 SQL
syntax, then translated (if necessary) into the dialect used
by the server. The Decision Query editor reads and displays
only ANSI standard SQL; the dialect translation, which is
updated automatically, appears after the ANSI version in the
String List editor for TDecisionQuery's SQL property. If you
want to modify a query, edit the ANSI SQL.

The Decision Cube can pivot, subtotal, and drill-in correctly
only for aggregators whose cells are additive. (SUM and COUNT
are additive, while AVERAGE, MAX, and MIN are not additive.)
Build pivoting crosstab displays only for additive aggregators;
other aggregator types work correctly in static crosstab
displays which do not pivot, drill, or subtotal.

Since AVERAGE can be calculated using SUM divided by COUNT,
a pivoting average is added automatically whenever the COUNT
and SUM aggregators for a field are included. Use this
average in preference to an average calculated through an
SQL statement.

Averages can also be calculated using COUNT(*). To use COUNT(*)
to calculate averages, include a "COUNT(*) COUNTALL" selector
in your query. If you use COUNT(*) to calculate averages, the
single aggregator can be used for all fields. Use COUNT(*) in
cases where none of your aggregated fields include blank values,
or where a count aggregator is not available for every field.

The Decision Cube works best with a Decision Query, where the
data can be traced back to database fields and aggregators. If
you attempt to crosstab data from a non-query dataset (or in
cases where the SQL cannot be analyzed by the Decision Cube),
you may need to provide information manually about the dimension
and summary fields. Fill in the Dimension Type to indicate whether
a field is a dimension or provide the summary type. Since pivoting
averages depend on SUM/COUNT calculations, you must also provide
the base field name to allow the cube to match pairs of SUM/COUNT
aggregators. If the base name is not available, you can use
a "COUNT(*) COUNTALL" in the query to calculate averages as
described above.

ActiveX and Remote Dataset Distribution
---------------------------------------
If you deploy an application or library that (a) uses the StdVCL
unit and the IStrings, IProvider, or IDataBroker interface, or
(b) uses the Delphi font, color, strings, or picture property
pages, you must also deploy the Borland standard VCL type library.
This library comes in two forms: the STDVCL32.DLL library, and a 
stand-alone type library called STDVCL32.TLB. Both of these files
are in your Windows\System directory. Applications and libraries
that use the Delphi property pages must deploy STDVCL32.DLL, but
applications and libraries that employ only the interfaces listed
above may instead deploy STDVCL32.TLB. Once installed on the
destination machine, STDVCL32.DLL or STDVCL32.TLB must be
registered in the system registry. (The TRegSvr demo application
provides an example of how to register DLL and TLB files.)

Win32 shell extensions
--------------------
Win32 shell extensions require that the threading model for the
extension object be set to "Apartment" in the system registry.
Since TComObjectFactory.UpdateRegistry doesn't make this entry
automatically, you can do it manually by inserting the Value Name
"ThreadingModel" with the Value "Apartment" under the CLSID key
for your control in the registry. You can also override
TComObjectFactory.UpdateRegistry to do this work for you; the
following example code is for a Copy Hook shell extension:

 procedure TCopyHookFactory.UpdateRegistry(Register: Boolean);
 var
   ClsID: string;
 begin
   ClsID := GUIDToString(ClassID);
   inherited UpdateRegistry(Register);
   if Register then
   begin
     CreateRegKey('CLSID\' + ClsID, 'ThreadingModel', 'Apartment');
     CreateRegKey('directory\shellex\CopyHookHandlers\' + ClassName,
        '', ClsID);
   end
   else
     DeleteRegKey('directory\shellex\CopyHookHandlers\' + ClassName);
 end;

Using OpenGL
------------
Applications or libraries that use the OpenGL graphics libraries
must ensure that the 8087 control word is set to mask Overflow,
Zero Divide, and Invalid Operation exceptions. This is done
automatically in the OPENGL unit, but if your application does
not use the OPENGL unit (for example, if you are using an ActiveX
control that employs OpenGL), you can do this by including the
following line in the initialization code of a unit:

  Set8087CW($133F);

InterBase ODBC Driver
---------------------
All versions of InterBase now include an ODBC 2.50 driver
which is installed with the software.

Borland Database Engine
-----------------------
A Driver Development Kit is available for the BDE.
Contact Developer Relations at Borland for details.

SNoTableName and other constants have been moved to the
BDEConst unit.

If you use the Oracle 7.2 or Oracle 7.3 client drivers, open
the BDE Administrator, select the Configuration page, and
navigate to Configuration/Drivers/Native/ORACLE. Then set
VENDOR INIT to ORA72.DLL or ORA73.DLL. Stored procedures
that return a result set are supported only for Oracle 7.3.

Using JPEG Images
-----------------
To use JPEG images at design time, choose Component | Install
Component, create a new package, select JPEG as the Unit File
Name, and install the package. To use JPEGs in an application
at runtime, include the JPEG unit in your unit's "uses" clause.

VCL Help Files
--------------
The VCL Help file (VCL3.HLP) uses another file called
VCL3JUMP.HLP to provide context-sensitive jump support.
Do not delete this file. If you accidentally delete it,
you'll have to restore it from the Delphi CD.

Overriding Resource-Module Localization
---------------------------------------
At start-up, applications typically check the locale of
the system and look for a resource module that matches
the language and country. If you want your application
to use a different resource module from the one indicated,
you can set an override in the registry: Under the
HKEY_Current_User\Software\Borland\Delphi\Locales key, add
your application's path and filename as a string value and
set the data value to the extension of your resource modules;
at startup, your application will look for resource modules
with this extension before using the system locale. For more
information, see "Using Resource Modules" under the
"Localizing Resources" Help topic.


KNOWN PROBLEMS

Installation and Un-installation
--------------------------------
Existing IDAPI32.CFG alias information is not changed by the
Delphi 3 installation. Therefore it may be necessary to change
the path in the DefaultDD alias to the Delphi 3 data dictionary.

Un-installing Delphi 2 or the C++Builder trial version can
remove some Delphi 3 settings and delete components from the
palette. We recommend reinstalling Delphi 3 after un-installation
of Delphi 2 or C++Builder.

The NetManage Internet Control Pack installed with Delphi is
also shipped with other applications, including Visual Basic
and PowerBuilder. These components may be unregistered in the
process of un-installing another product. If this happens,
reinstall Delphi.

After installing the C++Builder trial version, you may need
to reset some alias information in the default IDAPI32.CFG.
Specifically, the SERVER NAME for the IBLOCAL alias should point
to C:\Program Files\Borland\Delphi 3\Demos\Data\EMPLOYEE.GDB.
It's a good idea to back up your IDAPI32.CFG before installing
C++Builder.

Integrated Development Environment and VCL
------------------------------------------
TToolButton components don't resize properly when images
in the TToolBar's ImageList property are modified. To work
around this problem, remove images from the ImageList before
modifying them; then replace them in the ImageList.

Due to a problem in Microsoft's COMCTL32.DLL, the Arrange method
in TListView does not function. This makes it difficult to clean
up the list's alignment when ViewStyle is vsIcon or vsSmallIcon,
but otherwise does not affect the behavior of the component.

Use check boxes in TListView only when ViewStyle is set
to vsList or vsReport.

The TLabel.ParentFont property is not used under
Windows NT 4.0.

The fsStayOnTop setting for TForm.FormStyle does not function
correctly when one fsStayOnTop form launches another. In this
case, neither form will consistently remain on top.

Due to an operating-system bug, the TImageList.ResourceLoad
method does not load Icon or Cursor files.

If you set TOpenDialog.AllowMultiSelect to True under
Windows NT 4.0, a maximum of 20 files are returned. This
bug is fixed in Service Pack 2 (available from Microsoft).

Database
--------
The Database Desktop does not display automatically created
aliases for ODBC datasources. Always use static, manually
created aliases with the ODBC driver.

Due to a known bug in Microsoft's ODBC 3.4, connecting to
a database twice with this driver can cause Delphi to shut
down. This problem is fixed in ODBC 3.5.

The BDE no longer supports DbiUseIdleTime. Use
DbiSaveChanges instead.

Local SQL queries require a table qualifier or alias name
if the field name is in quotation marks. Examples:

 (BAD)    select name AS "First Name" from customer
  (OK)    select name AS customer."First Name" from customer
  (OK)    select name AS c."First Name" from customer c

When you use cached updates, changes made to indexed table
fields are not reflected until the updates are applied.

If you use cached updates with master/detail tables, TQuery will
re-execute the detail query each time the master record moves.

Constraint properties for a TField object on a client
dataset are ignored.

The floating-point format required for custom constraints is
inconsistent with international Windows settings. Always use
periods (.) for decimals in custom constraints.

Output BLOB parameters are not supported in stored procedures.

Drag-and-drop copying of tables in the Database Explorer copies
only metadata. Data copying will be supported in future releases.

Date-grouping on TClientDataSet is not supported in this version.

If an exception occurs inside the FormCreate event of a
remote data module, the excpetion is displayed interactively.
We recommend including a "try ... except" clause to handle
exceptions in these events.

Save table-level constraints in the Dictionary in the Database
Explorer, then read them from Delphi. (Use UpdateDataSet in
DRIntF.INT.) Saving constraints from Delphi will be supported
in future releases.

The Database Explorer does not support DB2 on the MVS 
or AS/400 platform.

When setting the BLOB SIZE parameter in the BDE configuration
for the Oracle SQL Links driver, add one to the size to prevent
data loss. For example, to retrieve 32k of data, set BLOB SIZE
to 33 instead of 32.

Informix users should have the latest client DLLs
(e.g. ISQLT07C.DLL) from Informix. Otherwise you
may get occasional access violations when using
the SQL Explorer.

If you open a BLOB field on an Informix 7.2 server,
using the Next method to move to another record causes
the server to crash. This is a known problem with the
Informix 7.2 software.

The CT-Lib driver works with Sybase version 10.0.4 EBF7033
or higher.

If you use Sybase drivers with cached updates or client
data sets, and you use a NUMERIC or DECIMAL field, make
sure ENABLE BCD is set to True in the BDE Administrator.

If you use the Sybase CT-Lib driver, you can't use the
pbBlank parameter to check whether a text field is blank;
the parameter always returns False. Also, blank BLOBs are
always shown as not blank.

To see Oracle Sequences with the Database Explorer, set
ENABLE BCD to False in the BDE Administrator.

Decision Support Components
---------------------------
If you use the Decision Query editor to access tables that
are not owned by the login user, the generated SQL statements
may by syntactically incorrect. Specifically, you may see

  "OwnerName.TableName"

where the correct syntax is

  "OwnerName"."TableName"

If this happens, use the String List editor to edit the dialect
part of the query manually in the TDecisionQuery.SQL property.
(If you open the Decision Cube editor again, however, your edited
query will be overwritten with the incorrect one.)

The same syntax problem causes the Decision Query to display
an error message when you run the Decision Cube. The message
tells you that the query fields cannot be automatically mapped
to dimensions and summaries. If you get this error message, run
the Decision Cube editor and provide the necessary field name,
grouping, and dimension type manually.

For more information about using these components, see the
Documentation Updates section above.

A bug in Intersolve's ODBC-Oracle driver causes it to interpret
"--" as a comment to the end of the file (rather than to the end
of the line). If you are using the Intersolve driver, move lines
that start with "--" to the bottom of the query. Do not remove the
lines altogether, since the Decision Query component uses them.

Access Driver
-------------
Some functionality is not yet implemented in this release. BCD
(binary coded decimal) support is not available. Key-violation
tables cannot be created with DbiAddIndex. (All other DbiAddIndex
functionality is supported.) QBE, heterogeneous queries, and
queries using the local SQL engine are not supported. In the
SDK, DbiDoRestructure and DbiRegenIndex are not available.

The Access driver does not support DAO 3.5 (Access 97). If you
upgrade Access 95 to Access 97, DAO 3.0 still resides on your
machine, so the driver will function correctly. If you install
Access 97 with no prior version of Access 95, the driver will
not function.

Because DAO 3.0 (Access 95) is not thread-safe, all database
functions must occur in the application's primary thread.

MS Access does not support opening a table that has
already been opened exclusively. Hence opening a table
when TTable.Exclusive is set to True prevents the user
from opening that table again, even in same session.

Use a BLOB as a parameter in a query only if the BLOB data is
less than 256 bytes.

When the Database Desktop copies an InterBase table to Access,
the table and data are copied without indexes. If the table
includes an index, you'll see an "invalid parameter" error.

When borrowing a structure from a Paradox table, the Database
Desktop does not copy primary indexes to the resultant Access
table.

Internet
--------
In order for the BDE to access paradox or dBASE tables
from a Web server application, the Web server must have
appropriate access privileges for the disk drive where
the table resides. Access privileges may depend on your
Web server and how it is configured. See your Web
server's documentation for details.

ActiveX
-------
After generating an ActiveX control, do not change the
type library interface from dual interface to dispinterface.
The ActiveX Class Framework does not support inheritance
from dispinterface.

Delphi-created ActiveX controls and ActiveForms have been
tested for use with the following containers: Delphi 3,
Delphi 2.0, Borland C++Builder, Visual Basic 4, Visual Basic 5,
Access 95, Access 97, ActiveX Control Pad 1.0, Visual C++ 4.2,
Visual C++ 5.0, Internet Explorer 3.01, and FrontPage 2.0.
There are known problems with ActiveX controls hosted in
Microsoft Access 95. Please check the Borland Web site for
the most up-to-date information on supported containers.

Because of a known problem with Internet Explorer, arrow keys
don't work inside some ActiveX controls when they are first
activated in IE. If you tab out of the control and then tab
back into it, the arrow keys will function normally.

Several problems with Internet Explorer 3.0's ActiveX download
feature were fixed in version 3.01. IE 3.01 is available on the
Delphi CD (in the IE3 directory). To determine which version you
currently have installed, check the IEXPLORE.EXE date stamp;
"3:01am" means version 3.01.

To change the name of an ActiveForm, you must perform these
three steps in the following order:
 1. Use the Object Inspector to change the form's name.
 2. Use the Type Library editor to change the coclass name.
 3. Use the Code editor to modify Class_xx in the factory
    create call (in the form's initialization section). For
    example, if you've changed the name of the form from
    MyForm to YourForm, you would change the create call from

      TActiveFormFactory.Create(ComServer, TActiveFormControl,
        TYourForm, Class_MyForm, 1, '', OLEMISC_SIMPLEFRAME or
        OLEMISC_ACTSLIKELABEL);
    to

      TActiveFormFactory.Create(ComServer, TActiveFormControl,
        TYourForm, Class_YourForm, 1, '', OLEMISC_SIMPLEFRAME or
        OLEMISC_ACTSLIKELABEL);

The Type Library editor cannot create a property of the type
TSafeArray or a function that returns a TSafeArray. Use the
OleVariant type instead.

QuickReports
------------
Due to limitations in the conversion process, some complex
reports from Delphi 2 may not load properly.

Dynamically Loaded Libraries
----------------------------
Windows NT sometimes incorrectly unloads a library when another
library that depends on it fails to load. This problem occurs
only when libraries are loaded dynamically under the conditions
described below. It affects Windows NT 3.51; Service Pack 2
fixes the bug for Windows NT 4.0.

The problem arises when a dynamically loaded library uses two
other libraries, each of which in turn uses another library.
Suppose, for example, that an application uses five DLLs that
are loaded dynamically in the following order: DLL1, DLL2, DLL3,
DLL4, DLL5. Suppose that the following dependencies hold among
the DLLs:

  DLL5 uses DLL4; DLL4 uses DLL3.
  DLL5 uses DLL2; DLL2 uses DLL1.

Suppose the first three DLLs (DLL1-3) load successfully, but
DLL4 calls an entry point in DLL3 that has been removed. In
this case, DLL5 will naturally fail to load. If a second
attempt is made to load the library, Windows will unload
DLL1 and the application program may crash.

This problem can affect installation of packages within the
Delphi IDE; it does not affect deployed applications, where
packages are statically loaded. If you are using Delphi under
Windows NT 3.51, the best way to avoid the problem is to make
sure all required packages are updated before you recompile
or install components.

----------------------------------------------------------------

 Unless otherwise noted, all materials provided in this release
 are Copyright 1983 - 1997 by Borland International.

----------------------------- END ------------------------------
