home *** CD-ROM | disk | FTP | other *** search
Text File | 1999-08-11 | 51.0 KB | 1,540 lines |
- ===============================================
- DELPHI 5.0 RELEASE NOTES
- ===============================================
-
- This file contains important supplementary and
- late-breaking information that may not appear
- in the main product documentation. We recommend
- that you read this file in its entirety.
-
- Portions of this file contain information that
- applies only to specific editions of the product.
- Such portions are clearly marked with the name
- of the edition (Enterprise, Professional,
- Standard, etc.) to which the information applies.
-
-
- CONTENTS
- ===============================================
-
- -- INSTALLATION NOTES
- (READ BEFORE CONTINUING)
-
- -- OTHER RELEASE NOTES
- INCLUDED WITH THIS PRODUCT
-
- -- ABOUT EDITING THE REGISTRY
-
- -- THIRD-PARTY PRODUCT NOTES
- AND KNOWN ISSUES
-
- -- DELPHI 5 KNOWN ISSUES
-
- -- ADDITIONAL COMPATIBILITY NOTES
-
- -- ONLINE HELP OMISSIONS,
- CORRECTIONS, AND CLARIFICATIONS
-
- -- DOCUMENTATION USAGE NOTES
-
- -- DELPHI ON THE WEB
-
-
- INSTALLATION NOTES
- ===============================================
- The following items describe known issues,
- behavior, and functionality that can affect
- installation of this product. For other
- installation issues, including how to remove
- the product, see the file INSTALL.TXT at the
- root of your CD.
-
- Minimum system requirements
- -----------------------------------------------
- * Intel Pentium 90 or higher (P166 recommended)
- * Microsoft Windows 95, 98,
- or NT 4.0 with Service Pack 3 or later
- * Memory: 32MB of RAM (64MB or more recommended)
- * 80MB hard disk space (Compact install)
- * CD drive
- * VGA or higher resolution monitor
- * Mouse or other pointing device
- * Networks supported: Any Microsoft Windows
- 95, 98, or Windows NT or higher compatible
- network
-
- If you've installed Delphi before
- -----------------------------------------------
- You can install to the same machine (though to
- a different location) as another version of the
- product. If you want to install to the same
- directory as an existing version, uninstall the
- existing version first. In either case, you
- should back up your IDAPI.CFG file (if one is
- present) and any other important data, including
- existing projects that you intend to use with
- this version.
-
- Uninstall Internet Control Pack
- -----------------------------------------------
- If you have installed any previous release of
- the Microsoft Internet Control Pack, uninstall
- that version before installing Delphi.
-
- Installing from a network or shared drive
- -----------------------------------------------
- If installing from a network or shared drive,
- you must map a drive letter to the server and
- folder that contains the INSTALL.EXE program
- that initiates installation of this product.
-
- Windows 98 users: The directory Browse button
- may cause the installation to halt
- ----------------------------------------------
- If installing under Windows 98 with Microsoft
- Client for NetWare Networks and the Microsoft
- Service for NetWare Directory Services (MSNDS)
- network clients:
-
- Installation may exit or stop with a fatal
- error message if you click the Browse button
- on the directory selection dialog.
-
- Workaround: If you choose not to install to
- the default directories, type your directory
- choices into the dialog fields, rather than
- clicking Browse.
-
- For more information on this problem, see the
- following technical articles at the InstallShield
- and Microsoft sites:
-
- Search for article Q192249 at:
- http://support.microsoft.com/search/default.asp
-
- Search for article Q102400 at:
- http://support.installshield.com
-
- InstallShield and Microsoft Outlook 98
- --------------------------------------
- If Outlook 98 is running when you install Delphi,
- InstallShield will hang. We strongly recommend
- that you close Outlook 98 and all other Windows
- programs before installing Delphi.
-
- Performing a Custom installation
- -----------------------------------------------
- To conserve disk space, you can perform a custom
- installation, selecting only the options you
- require. To do so, select the Custom radiobutton
- in the Setup Type dialog during installation. Disk
- space required for the total custom installation
- and individual options is displayed as you select
- or deselect options.
-
- Among the options is to install Registry keys only.
- This option can be used to repair keys damaged as
- a result of a computer crash or to set up sets of
- registry keys for different user profiles.
-
- During a Custom install using registry keys only,
- you may select to install minimal files. These are
- files in the Windows system directory; the option
- installs the files and defines the registry keys.
-
- Just-In-Time Debugging
- -----------------------------------------------
- During installation, you have the option of
- updating your Just-In-Time Debugger registry
- settings.
-
- If you choose to update your registry, changes
- are made to the key:
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\
- Windows NT\CurrentVersion\AEDebug\Debugger
-
- The key is changed to:
- C:\Program Files\Borland\Delphi\bin\
- bordbg50.exe -aeargs %ld %ld
- (where C:\Program Files\Borland\
- is the installation directory)
-
- If you do not perform the update during
- installation, you get a second chance to update
- the registry at program startup. The Just-In-Time
- Debugger automatically starts when any program
- running on your computer fails. Just-In-Time
- debugging and distributed debugging will not work,
- however, unless this registry setting is updated.
-
- If you want to preserve your existing AEDebug
- settings in case you want to change them back
- at a later date, you must follow these steps
- BEFORE updating the registry settings:
-
- 1. Run Regedit.
- 2. Select the AEDebug key (noted above).
- 3. Choose Registry | Export Registry File.
- 4. Name and save the file containing the AEDebug key.
-
- To restore the AEDebug settings you can:
-
- 1. Run Regedit.
- 2. Choose Registry | Import Registry File.
- 3. Specify the file in which you saved the AEDebug key.
-
-
- OTHER RELEASE NOTES
- INCLUDED WITH THIS PRODUCT
- ===============================================
-
- INSTALL.TXT contains system requirements
- and information on installing and removing
- the product.
-
- DEPLOY.TXT contains information about
- redistributing Delphi applications.
-
- LICENSE.TXT contains information on
- licensing allowances and limitations for this
- product and other Inprise software that is
- bundled with it.
-
- The three text files listed above, along with
- this file, are installed to your main Delphi5
- directory (default: c:\Program Files\Borland\Delphi5).
-
- DEL5NEW.HLP covers new features and
- compatibility issues. This file is part of
- the main online Help system (see "What's New"
- in the Help contents or index).
-
- Enterprise and Professional editions only:
- BDEREADME.TXT, BDEINST.TXT and
- BDEDEPLOY.TXT contain release notes,
- installation, and deployment information about
- the Borland Database Engine (BDE) and
- Borland SQL Links products. These files are
- located in your main BDE directory
- (installation default:
- c:\Program Files\Common Files\Borland Shared\Bde).
- IMPORTANT: Any BDE-related information in this
- README.TXT overrides any corresponding information
- provided in the BDE release notes.
-
- Additional notes about existing issues with BDE
- and utility applications supplied with BDE are
- covered in the DELPHI 5 KNOWN ISSUES section
- later in this document.
-
-
- ABOUT EDITING THE WINDOWS REGISTRY
- -----------------------------------------------
- Warning:
- Registry edits are performed at your own risk.
-
- Several items in this document and in other
- parts of the documentation that accompany this
- product describe how to edit your Windows
- registry. In most cases, we recommend that you
- use the Microsoft Regedit tool to perform your
- editing. Whatever tool you use, however, you
- should, before making any edits, make backups
- of your registry and thoroughly familiarize
- yourself with the editing tool and the
- registry editing process. The registry is a
- critical component of your operating system,
- and any mistakes made while editing it can
- cause your machine to stop functioning.
-
-
- THIRD-PARTY PRODUCT NOTES
- AND KNOWN ISSUES
- ===============================================
-
- The following items describe issues and problems
- you may encounter when using Delphi 5 with other
- tools and applications. Additional third-party
- and external application issues may also appear
- in the "DELPHI 5 KNOWN ISSUES" section.
-
- Installing Microsoft Data Access Components
- -----------------------------------------------
- [Enterprise edition only]
- If you need to update your Microsoft Data
- Access Components (MDAC) to version 2.1.2
- after installing Delphi, run MDAC_TYP.EXE
- from the \MDAC directory on your Delphi CD.
-
- Uninstalling when McAfee virus scanner active
- -----------------------------------------------
- Because it normally scans "outbound files"
- (such as files being uninstalled), recent
- versions of McAfee virus scanner may cause long
- delays during Delphi uninstallation. Windows NT
- users can switch off this protection option by
- right-clicking the VShield icon in the system
- tray, choosing Properties, then deselecting
- the "Outbound Files" option in the "Scan"
- group. Windows 95/98 versions of VShield do not
- have the "Outbound Files" option, but users may
- speed the uninstall by disabling "System Scan"
- directly from the VShield tray icon.
-
- Microsoft ImageList common control
- and video drivers
- -----------------------------------------------
- Some older video drivers (S3 Virge GX, Diamond
- Viper, Riva TNT, Matrox Millenium, and others)
- have trouble handling the quantity of images
- that the Delphi IDE's component palette places
- in its internal ImageList control. This can cause
- the component icons to appear shifted or corrupted
- in the IDE component palette. The solution is to
- contact your video card vendor for an updated
- video driver. At the time of this writing, all
- the video drivers known to exhibit problems with
- the Microsoft ImageList control have been updated
- with fixes by the video card vendors.
-
- You can also work around this ImageList problem
- by reducing or disabling video hardware
- acceleration in your Windows configuration
- settings. For instructions, consult your operating
- system and video hardware documentation.
-
- ActiveX Wizard/licensing issue
- -----------------------------------------------
- [Enterprise, Professional editions only]
- Delphi does not directly support the licensing
- of ActiveX controls for Web deployment.
- License package (.LPK) files, which are
- required for runtime licensing of ActiveX
- controls, can only be generated by
- LPK_TOOL.EXE, a utility available in
- Microsoft's Internet SDK. For more information
- on the license-creation tool and how it is used,
- visit http://support.microsoft.com
- and search for "LPK".
-
- Microsoft Transaction Server (MTS)
- -----------------------------------------------
- [Enterprise, Professional editions only]
- If Microsoft Transaction Server (MTS) is
- installed before Delphi 5 is installed, the
- only preparation required is to set MTS POOLING
- to TRUE in the Borland Database Engine (BDE)
- configuration file. Use the BDE Administrator
- to do this. The MTS POOLING setting is in the
- System/Init area of the configuration. This
- setting enables the BDE to use MTS pooling,
- improving the initial connection time when
- opening a database and allowing BDE database
- connections to participate in MTS transactions.
-
- If MTS is installed after Delphi 5 has been
- installed, additional steps must be taken:
- 1. Copy DISP.DLL from the RUNIMAGE directory
- on your Delphi 5 CD into the BDE directory
- on the host computer.
- 2. Issue the following command:
- REGSVR32 <BDE directory>\DISP.DLL
- 3. In Transaction Server Explorer, install the
- BDE-MTS package:
- a. Right Click on Packages Installed.
- b. Choose New | Package.
- c. Choose Install pre-built packages.
- d. Add file DISP.PAK from the BDE
- directory.
- 4. Set the value of MTS POOLING to True in
- the System/Init section of the BDE
- configuration.
-
- Microsoft icon cache prevents icon updating
- -----------------------------------------------
- If running Delphi 5 on a Windows 95 or 98
- machine on which Delphi 4 was previously
- installed (even if it is no longer present),
- the Delphi 4 icon set may persist in its
- association to Delphi applications, overriding
- the new Delphi 5 icon set. This is a known
- problem with Microsoft's icon cache updating
- mechanism on Windows 95/98. To read about the
- problem and its solution:
- 1. Visit the Microsoft KnowledgeBase at
- http://support.microsoft.com/search/default.asp
- 2. Choose Search All Microsoft Products from the
- listbox.
- 3. Choose the "Keywords" option.
- 3. In Search Options (lower part of the page),
- choose to search against Titles.
- 4. Type the phrase "icons randomly change"
- (no quotes) into the Question field. The search
- should yield a number of article titles, any of
- which should lead you to a resolution.
-
- IntelliMouse driver v2.2
- -----------------------------------------------
- Version 2.2 of the Microsoft IntelliMouse
- driver writes an invalid value to the registry
- when it is installed. This default value can
- cause some applications, including Delphi,
- Outlook Express, and Windows Explorer, to
- crash. To correct the problem:
- 1. Use Regedit to locate the key
- HKEY_USERS\.Default\Control Panel\
- Microsoft Input Devices\Mouse
- 2. If the value of TrayIcon is "ON", edit
- the value to make it "TRUE" ("FALSE"
- works as well).
-
- ODBC certification
- -----------------------------------------------
- [Enterprise and Professional editions only]
-
- The following ODBC drivers are certified for
- use with Delphi 5 and BDE.
-
- ODBC Driver Manager 3.5
-
- Fully certified drivers:
-
- ACCESS (Microsoft 3.40-Access 95 and 97)
- FOXPRO (Microsoft 3.40)
- MSSQL Server (Microsoft 3.00-Server version 6.5)
- MSSQL Server (Intersolv 3.01-Server version 6.5)
- ORACLE 7 (Intersolv 3.01-Server version 7.3)
-
- Certified for basic functionality:
-
- INFORMIX (Intersolv 3.01
- - Server version 7.20 and 9.11)
- DB2 (IBMv5 client 6/98
- - No driver version info available:
- tested against 2.12 and 5.0(UDB) server
- SYBASE (Intersolv 3.01
- - Server version 11.02)
-
- ODBC Driver Manager 3.51
-
- Fully certified drivers:
-
- ACCESS (Microsoft 3.51-Access 95 and 97)
- FOXPRO (Microsoft 3.51)
- MSSQL Server (Microsoft 3.6
- - Server version 6.5 and 7.0)
- MSSQL Server (Intersolv 3.11
- - Server version 6.5 and 7.0)
- ORACLE7 (Intersolv 3.11
- - Server version 7.3)
-
- Certified for basic functionality:
-
- DB2 (IBMv5 client 6/98
- - No driver version info available:
- tested against 2.12 and 5.0(UDB) server
- SYBASE (Intersolv 3.11
- - Server version 11.02)
- ORACLE8 (Intersolv 3.11
- - Server version 7.3 and 8.04)
-
-
- DELPHI 5 KNOWN ISSUES
- ===============================================
- For additional late-breaking Delphi 5 usage
- notes, see the section "ONLINE HELP
- OMISSIONS, CORRECTIONS, AND
- CLARIFICATIONS" later in this document.
-
- ADO issues
- -----------------------------------------------
- [Enterprise edition only]
-
- When using TADOTable or TADODataSet, an error
- may occur when retrieving a list of table names
- from Microsoft SQL Server 6.5. To correct the
- problem, you must install the latest
- SQL Server 6.5 Service Pack (currently 5a),
- or update the system catalog as described in
- the MDACREADME.TXT file that accompanies
- MDAC 2.1.
-
- When using the Filter property on the ADO
- dataset components, ADO requires a space
- between operators and field names.
- For example,field>0 fails, field > 0 works.
-
- You cannot open tables or procedures that
- contain mixed case names on Oracle servers
- unless the names containing lower case letters
- are enclosed in quotation marks. Affects
- ADODataSet, ADOCommand, ADOTable, and
- ADOStoredProc objects.
-
- The IndexName and Seek methods of TADODataSet
- currently only work with the Microsoft Jet 4.0
- provider when using a database file created with
- Access 2000.
-
- The Oracle provider included with the MDAC runtime
- does not support Oracle 8 datatypes (CLOB, BLOB,
- NVARCHAR2, NCHAR, etc.).
-
- When using the Merant (Informix 7, 9) provider,
- MSADO15.DLL generates an AV when working with
- Stored Procedure parameters.
-
- ADO does not support case-sensitive filters
- or find operations. Because of this, the
- FilterOptions and LocateOptions on the ADO
- dataset components do not respect the case
- sensitive option and always return case-insensitive
- results.
-
- When opening tables or stored procedures on an
- Oracle server, you must put double quotes around
- any mixed case names as required by the server
- ("TableName").
-
- When using the ADO Dataset components on a
- MIDAS application server, ensure that the
- Active property is set to false at design
- time to ensure that any Refresh after
- an update will return the correct data.
-
- When using the TParameters.CreateParameters
- method, ADO requires that the size parameter
- be set to a value greater than zero if the
- value parameter is null.
-
- When using the Microsoft Jet 3.51 provider,
- an error will occur if you bind values to
- boolean columns using ftBoolean. The problem
- is corrected in the 4.0 provider. You can
- bind the parameters as ftInteger to workaround
- the problem.
-
- When using the pfXML option with the
- TADODataSet.SaveToFile method, you
- must first install version 5.0 of Internet
- Explorer in order to reload the data. The XML
- parser which is required to interpret the data
- is not included with the 2.1 MDAC runtime.
-
- MIDAS\InternetExpress
- -----------------------------------------------
- [Enterprise edition only]
-
- There is a known design-time problem when
- building an Internet Express application
- that uses a local provider: Each time the project
- is reloaded, the XMLBroker Connected property
- is reset to False, and you must manually reset
- it to True.
-
- When a MIDAS server will not shut down as
- expected:
- A client Web application may not always be
- able to shut down a MIDAS server launched via
- an HTTP connection or via DCOM from an
- InternetExpress client unless the DCOM user
- account is set to "Interactive User" on the
- server machine. To set this permission, run
- DCOMCNFG.EXE on the server machine, choose
- your MIDAS server from among the listed
- Applications, press Properties, then
- Identities, and select Interactive User. In
- subsequent sessions, the server may be shut
- down as expected.
-
- "Invalid Filename" is returned trying to
- Activate a ClientDataSet when:
- -- A MIDAS server has a provider located on a
- Novell network; or
- -- A ClientDataSet attempts to connect to a
- MIDAS server on another machine.
- The solution to both of these situations is the
- same as that described in the previous note
- (set the MIDAS server Application Identity
- to "Interactive User").
-
- The Netscape browser does not support XML Islands,
- and, as a result, will crash with an out-of-memory
- error when the InternetExpress application
- accesses MIDAS data with a very large data packet.
- This behavior also occurs if using Internet Explorer
- without XML Islands support (if using Islands,
- it does not occur).
-
- Current versions of the Netscape browser do not
- support Unicode. Thus, if you input DBCS
- characters into a Dataset field, the characters
- will not display correctly in a Netscape
- browser. This problem does not occur in
- Internet Explorer.
-
- InternetExpress clients accessing multi-byte
- character set (MBCS) data from a MIDAS
- server will receive the error
- "<MBCS fieldname>:name not found in rowset"
- unless the MIDAS server is running on an MBCS
- operating system.
-
- ActiveX imports
- -----------------------------------------------
- [Enterprise and Professional editions only]
-
- If you import an ActiveX control and a _TLB.pas
- file already exists with the same name as the
- imported control, you are asked if you want to
- overwrite the existing _TLB. If you choose to
- overwrite and continue, it may appear that the
- file was not overwritten (the behavior of what
- should have been the overwritten control
- remains in effect).
-
- In fact, the overwrite does occur, but the IDE
- will not recognize the new control until you
- close and then reopen the newly created
- _TLB.pas file (without saving it, since you've
- already performed the overwrite).
-
- ActiveX imports (Windows 98 only):
-
- Importing certain OLE servers when running
- Delphi under Windows 98 will result in the
- generation of packages with invalid bitmaps.
- These bitmaps will be replaced with the default
- Delphi three-object icon when the package is
- installed on the component palette.
-
- To get the correct icons, re-import the server
- under Windows NT and use the .dcr generated by
- that import, rather than the .dcr generated
- under Windows 98, when installing the package
- onto the palette.
-
- Frames
- -----------------------------------------------
- Multi-level references and indirect event
- calls are not automatically generated in
- nested frames. Such multi-level functionality
- must be coded separately.
-
- When creating templates from frames make sure
- the frame source is saved before creating the
- template or adding the frame to the palette.
- Doing so will avoid later problems if the frame
- is saved under a different name.
-
- When using TChart components and frames on the
- same form, changes to the components are not
- inherited from frame to frame.
- Recommendation: Do not change TChart component
- settings when using the components on forms
- with frames.
-
- Cached updates and master-detail relationships
- -----------------------------------------------
- [Enterprise and Professional editions]
- Cached Updates cannot be used effectively with
- TQuery components when doing master-detail
- links (DataSource property). This is because
- the detail query is reexecuted each time the
- master record pointer moves.
-
- SQL Explorer and Sybase 11.5
- -----------------------------------------------
- [Enterprise edition only]
- When SQL Explorer connects to a Sybase 11.5
- server, the following problems occur:
- -- The server type is shown as
- "SYBASE: Unknown Version: Mapping error:
- Bad template: SQL Server/([0-9]+)\."
- -- If the text tab is selected for a table with
- a numeric field, a "Property Precision does
- not exist" error message is generated.
- -- The server displays only Columns, Indices
- and Triggers in table trees.
- Workaround for above three problems:
- edit DBX.DBI, located in your Delphi5/Bin
- directory, and change the line:
- SYBASE:IdentityRE=SQL Server/([0-9]+)\.
- to (these two lines should be on one line
- in the DBI file):
- SYBASE:IdentityRE=[SQL Server]
- [Adaptive Server Enterprise]/([0-9]+)\.
-
- BLOB limitations
- -----------------------------------------------
- [Enterprise and Professional editions only]
-
- When using ODBC, BLOB size is limited to
- 1,000,000 (1 million, not 1 MB) bytes.
- Attempting to post a larger record generates an
- "Invalid Blob Size" error.
-
- You may experience more severe limitations
- using BLOBs with SQL Anywhere. When using
- that product, problems have been encountered
- when trying to read BLOBs as small as 24-32K
- in a dead query.
-
- Images in a TTreeView
- -----------------------------------------------
- TTreeView cannot repaint a node's image when
- its ImageIndex is set outside of
- OnGetImageIndex (e.g., in a button click)
- and OnGetImageIndex is assigned (if the event
- handler is not assigned, it works correctly).
- This is due to a limitation in the TreeView
- control and is designed to avoid recursion.
- A simple workaround is to call
- TreeView.Invalidate after setting the
- ImageIndex.
-
- RichEdit controls
- -----------------------------------------------
- If CoInitializeEx is called with
- COINIT_MULTITHREADED or CoInitFlags has
- been set to COINIT_MULTITHREADED and you
- have a form containing a RichEdit control,
- creation of the RichEdit control will fail.
- If you need to use the RichEdit control in a
- multi-threaded OLE server, subclass the control
- and override CreateParams in order to set the
- correct style.
-
- Overloaded routines and default parameters
- -----------------------------------------------
- Overloaded routines with default parameters are
- not always handled correctly by the compiler.
- Overloaded procedures and functions that have
- default parameters should be converted to
- equivalent routines that are overloaded but do
- not use default parameters.
-
- For example, the following code:
-
- procedure Proc1(S: string; I: Integer = 0); overload;
- procedure Proc1(F: Float; I: Integer = 0); overload;
-
- should be converted to:
-
- procedure Proc1(S: string); overload;
- procedure Proc1(S: string; I: Integer); overload;
- procedure Proc1(F: Float); overload;
- procedure Proc1(F: Float; I: Integer); overload;
-
- The implementation of Proc1(S: string)
- would then be:
-
- procedure Proc1(S: string);
- begin
- Proc1(S, 0);
- end;
-
- Project Browser
- -----------------------------------------------
- The References page of the Project Browser
- finds occurrences of most items, including
- properties and global routines, across all
- project source files. But it finds occurrences
- of a method only in the unit where the method
- is declared. This limitation will be removed
- in a future release.
-
- Docking issues
- -----------------------------------------------
- On a dockable form, TreeViews will lose their
- items when docking and undocking from a
- docksite parented by an MDI form.
- Workarounds:
- 1. Parent the TreeView to something other than
- the docking form (such as a panel).
- 2. Use the TreeView's FloatingDockSiteClass
- form as the floating dock host.
-
- Warning: Do not use duplicate menu names
- -----------------------------------------------
- If a form contains a menu control and all of the
- names in the menu control are not unique, an
- error will occur if you use the form to create a
- new inherited form. The error will occur, for
- example, if two or more blank menu items exist.
-
- Menu Shortcut Conflicts
- -----------------------------------------------
- Menu shortcuts in the IDE may conflict with
- system shortcuts and international character key
- combinations. If you want to disable the Ctrl+Alt
- hot keys in the IDE, set this DWORD registry key:
-
- HKEY_CURRENT_USER\Software\Borland\Delphi\5.0\
- Editor\Options\
- NoCtrlAltKeys to "1"
-
- BDE and related utility application issues
- -----------------------------------------------
- [Enterprise and Professional editions only]
-
- A threading problem occurs if you set the
- session property sesCFGMODE2 to cfgmVirtual
- and/or cfgmSession (though cfgmPersistent
- works). Specifying either of the two noted
- settings can cause a GPF in your program.
-
- A mismatch between Oracle client and server
- versions can cause BLOB and CLOB access
- problems. SQL Links is not certified to
- overcome this limitation.
- Details: BLOB and CLOB access problems will
- be encountered when an Oracle 8.1.5 client
- communicates with an Oracle 8.0.4 server.
- (Delphi 5 is certified only with the Oracle
- 8.1.5 client/Oracle 8.1.5 server configuration.)
-
- Using Microsoft Access ODBC driver
- version 4.00.3711.08 with Delphi 5 and BDE
- causes text field lengths to be reported twice
- as long as they actually are. Earlier versions
- of the driver do not exhibit this behavior.
- Nor does the problem occur when ADO is used.
-
- TStoredProc components that attempt to get an
- spParamList value from an invalid stored
- procedure will cause an AV in ORACLIENT8.DLL.
- To avoid this problem, make sure the procedure
- is valid on the server.
-
- Using TQuery with Oracle 8 BLOBs and CLOBs
- -----------------------------------------------
- Accessing BLOB/CLOB in ORACLE 8 requires a
- LOB locator. The SQL statements for inserting
- LOBS using TQuery is as follows:
-
- INSERT INTO LOBTAB ( F_BLOB, F_CLOB) VALUES
- ( EMPTY_BLOB( ), EMPTY_CLOB() ) RETURNING
- F_BLOB, F_CLOB INTO :P1, :P2
-
- Here, parameter P1, P2 should be bound as
- OraBlob and OraClob, respectively, and the
- BLOB values can be assigned to the parameters.
- SQL Links internally gets the locators from
- the returning clause of the above query and
- populates the LOB.
-
- Similarly, an update SQL statement would read:
-
- UPDATE LOBTAB SET F_CLOB = EMPTY_CLOB( )
- RETURNING F_CLOB INTO :P1
-
- TQuery parameter binding --
- MIDAS and ORACLE 8 CLOB and BLOB fields
- -----------------------------------------------
-
- Using Oracle 8.1.5 client/server:
- If you attempt to set a CLOB to an empty value,
- an AV may result when the CLOB is updated via
- a TQuery parameter binding or through MIDAS.
-
- Using Oracle 8.0.4 client/server:
- An AV may result if you attempt to insert a new
- Record with MIDAS and then call ApplyUpdates
- without giving values to CLOB or BLOB fields.
-
- Workaround for both cases:
- Use events to guarantee that CLOB and BLOB
- fields have a non-null value.
-
- Oracle 8, VARRAYs and ADTs
- -----------------------------------------------
- [Enterprise, Professional editions only]
- An application can crash when opening an
- Oracle 8 table that contains a large VARRAY of
- ADTs. Oracle recommends using nested tables
- instead of VARRAYs when such configurations are
- required.
-
-
- ADDITIONAL COMPATIBILITY NOTES
- ===============================================
-
- The following items describe compatibility
- issues between Delphi 5 and earlier versions of
- Delphi, as well as between Delphi 5 and other
- products.
-
- NOTE: The information below was confirmed late
- in the development process and may not appear
- in the online Help system. For a more detailed
- discussion of this subject, see "Compatibility
- Issues" in the Help Index.
-
- DSGNINTF and deployment
- -----------------------------------------------
-
- DSGNINTF.DCU is no longer shipped with Delphi.
- Thus, component developers should consider
- segregating design-time code into separate units
- from runtime code. Runtime code should not refer
- to those units.
-
- If this approach is not feasible, you do have the
- option of compiling DSGNINTF.PAS (located in
- your \source\toolsapi\ directory). This should be
- considered a stopgap measure, however, and may
- not be available as an option in future releases.
-
- You are also reminded that under the terms of
- your license agreement, you are not permitted to
- distribute DCUs based on source code owned by
- Inprise Corporation, no matter how that code
- might be made available to you. For complete
- details on licensing restrictions, see the
- LICENSE.TXT and DEPLOY.TXT files that accompany
- this release.
-
- MIDAS.DLL replaces DBCLIENT.DLL
- -----------------------------------------------
- When redistributing MIDAS clients, you must
- redistribute the new MIDAS.DLL with your
- applications. This file replaces DBCLIENT.DLL
- as the primary MIDAS support library.
- (DBCLIENT.DLL is also supplied to provide
- support for earlier versions of MIDAS.)
-
- Functions removed
- -----------------------------------------------
- The DBError and DBErrorFmt functions no longer
- appear in DB.PAS.
-
- Delphi 3 projects need STDVCL32.DLL
- -----------------------------------------------
- Projects created in Delphi 3 and earlier
- releases require the presence of STDVCL32.DLL
- to enable their loading into Delphi 5.0. When
- the older project is saved in Delphi 5.0, it is
- upgraded to use the new STDVCL40.DLL, and the
- older library is no longer required.
-
- FIF libraries no longer available
- -----------------------------------------------
- The FIF libraries that were supplied in the
- \INFO\EXTRAS folder on the CDs of previous
- Delphi releases are no longer available due to
- discontinued development and support by the
- vendor, Iterated Systems.
-
- GraphicsServer component no longer included
- ----------------------------------------------
- The GraphicsServer component (GRAPH32.OCX)
- that shipped with earlier versions of Delphi
- is no longer a part of the product. Information
- about the GraphicsServer component is available
- from the vendor at http://www.graphicsserver.com/
-
-
- ONLINE HELP OMISSIONS,
- CORRECTIONS, AND CLARIFICATIONS
- ===============================================
-
- The following items describe late-breaking
- features and elements that are either not
- covered or require correction or clarification
- in the online Help system that ships with
- Delphi 5. Most items include a title and
- keyword that will help you locate the affected
- topics.
-
- Using CORBA
- -----------------------------------------------
- CORBA applications require an active TCP/IP
- stack to operate.
-
- CORBA client and server applications that call
- or implement interfaces declaring OleVariants
- as method parameters are advised to add
- ShareMem as the first unit in the application's
- uses list. ShareMem is necessary to manage
- memory allocated to hold Pascal long strings.
-
- TADOConnection
- -----------------------------------------------
- Topic title/keyword: TADOConnection
- New published property: KeepConnection
- Description: Specifies whether an application
- remains connected to a database even if no
- datasets are open. For details, see the
- similar property description at
- TDatabase.KeepConnection
-
- TComponent
- -----------------------------------------------
- Topic title/keyword: TComponent
- New public method: RemoveFreeNotification
- Description: Disables destruction notification
- after it has been enabled by FreeNotification.
-
- TComponent.ComponentState
- -----------------------------------------------
- Topic title: TComponent.ComponentState
- Keyword: TComponentState type
- New value option:
- csDesignInstance This is set on TForm, TFrame,
- TDataModule, etc. at design
- time. It is always set with
- csDesigning but, unlike
- csDesigning, is not set on the
- sub-components. For frames, it is
- set on design time frames but not
- frames that are registered as
- components.
-
- TComServer
- -----------------------------------------------
- Topic title/keyword: TComServer
- New public property: TComServer.UIInteractive
- Description: Controls whether the server
- displays error messages to the user. Can be set
- to False for COM servers running as a service.
-
- TOwnerDrawState type
- -----------------------------------------------
- Topic title/keyword: TOwnerDrawState type
- New optional values:
- odHotLight The item is highlighted when
- under the cursor ("hot-tracked").
- Windows 98/2000.
- odInactive Both the item and the window
- associated with the menu are
- inactive. Windows 98/2000.
- odNoAccel Keyboard accelerator cues
- (character underscoring) is not
- applied when the control is drawn.
- Windows 2000.
- odNoFocusRect Cues that normally indicate
- focus are not applied when the
- control is drawn. Windows 2000.
- odReserved1 Not used.
- odReserved2 Not used.
-
- Updated declaration:
- type TOwnerDrawState = set of (odSelected,
- odGrayed, odDisabled, odChecked, odFocused,
- odDefault, odHotLight, odInactive, odNoAccel,
- odNoFocusRect, odReserved1, odReserved2,
- odComboBoxEdit);
-
- Additional information:
-
- If you have any code that type-casts the ItemState
- field of a DrawItemStruct, you should change the
- code accordingly.
-
- Example:
-
- with Message.DrawItemStruct^ do
- begin
- State := TOwnerDrawState(WordRec(LongRec
- (itemState).Lo).Lo);
-
- Should now be:
-
- with Message.DrawItemStruct^ do
- begin
- State := TOwnerDrawState(LongRec(itemState).Lo);
-
-
- TQueryTableProducer
- -----------------------------------------------
- Topic title/keyword: TQueryTableProducer
- Limitation note:
- TQueryTableProducer works only with TQuery
- components. It does not work with TAdoQuery or
- TIBQuery.
-
- TAppletModule
- -----------------------------------------------
- Topic title/keyword: TAppletModule
- Events link is missing. To view Help for
- events, search "TAppletModule" in the Help
- Index. Events (OnActivate, OnInquire,
- OnNewInquire, OnStartWParms, OnStop) are listed
- along with the object's properties and methods.
-
- Omission: Component Writer's Guide
- -----------------------------------------------
- Topic title: How do you create components?
- Keyword: Creating components
- Problem: Missing table
- Missing table data:
-
- To: Modify an existing component
- Start with this type: Any existing component,
- such as TButton or TListBox, or an abstract
- component type, such as TCustomListBox
-
- To: Create a windowed control
- Start with this type: TWinControl
-
- To: Create a graphic control
- Start with this type: TGraphicControl
-
- To: Subclass a Windows control
- Start with this type: Any Windows control
-
- To: Create a nonvisual component
- Start with this type: TComponent
-
- Clarification: Debugger services
- -----------------------------------------------
- Topic title: Debugger services
- Keyword: service applications, debugging
- Step 2 of this topic describes adding a
- registry subkey with the full path to the
- debugger as the string value, but does not
- actually specify the path. The value is:
-
- C:\program files\borland\delphi5\bin\delphi32.exe
-
- Note that "C:\program files\borland\delphi5"
- is the default installation folder; if you
- installed to a different location, modify the
- string as needed.
-
- Error: Code snippet won't compile
- -----------------------------------------------
- Topic title: Reading and writing strings
- Keyword: Strings
- The code snippet:
-
- var
- fs: TFileStream;
- s: string = 'Hello';
-
- should be written as:
-
- var
- fs: TFileStream;
- const
- s: string = 'Hello';
-
- Correction in example topic: ContentType,
- ContentStream, SendResponse example
- -----------------------------------------------
- Accessible from example links in VCL topics:
- TISAPIResponse.ContentType,
- TISAPIResponse.SendResponse,
- TCGIResponse.ContentType,
- TCGIResponse.SendResponse,
- TWebResponse.ContentStream,
- TWebResponse.ContentType,
- TWebResponse.SendResponse
-
- The example topic noted above is incorrect in the
- online Help file. The corrected code appears
- below.
- Note: This code segment is part of the
- IServer demo project you'll find at
- /demos/webserv. The corrected code can be found
- in the MAIN.PAS file in that directory.
-
- procedure
- TCustomerInfoModule.CustomerInfoModuleGetImageAction
- (Sender: TObject; Request: TWebRequest;
- Response: TWebResponse; var Handled: Boolean);
-
- var
- Jpg: TJpegImage;
- S: TMemoryStream;
- B: TBitmap;
- begin
- Jpg := TJpegImage.Create;
- try
- B := TBitmap.Create;
- try
- B.Assign(BioLifeGraphic);
- Jpg.Assign(B);
- finally
- B.Free;
- end;
- S := TMemoryStream.Create;
- Jpg.SaveToStream(S);
- S.Position := 0;
- Response.ContentType := 'image/jpeg';
- Response.ContentStream := S;
- // do not free the stream because the response
- // object will handle that task.
- finally
- Jpg.Free;
- end;
- end;
-
- Correction: AutoHotKeys property value
- -----------------------------------------------
- [WHATSNEW.HLP]
- Topic title: Miscellaneous VCL Enhancements
- Keyword: VCL,enhancements
- Detail:
- The topic section "New Help hint and menu features"
- states, "Setting the AutoHotKeys property to True
- causes the menu to maintain hot keys...remove
- duplicate hot keys, and add unique hot keys...."
- Correction:
- The property value should be maAutomatic, NOT True.
-
- Correction: ValidHotkeys variable
- should be ValidMenuHotkeys
- -----------------------------------------------
- Topic title/keyword: ValidHotkeys variable
- Correction: The correct variable name is
- ValidMenuHotkeys.
-
- TRegistry.Access enhancement
- not noted in "What's New"
- -----------------------------------------------
- Topic title: TRegistry.Access
- Keyword: TRegistry,Access
- Detail: TRegistry.Access is a new property that
- specifies the level of access to use when
- opening keys with TRegistry, TRegistryIniFile,
- or TRegIniFile objects. Among the advantages
- to using the Access property with those objects
- is the ability to read HKLM on Windows NT
- machines without Administrator privileges.
- See the TRegistry.Access topic for additional
- information.
-
- Undocumented: ESafeCall exception
- -----------------------------------------------
- ESafeCall is raised when a routine has the
- safecall calling convention but the application
- can't provide the necessary error-handling. For
- example, ESafeCall is raised when safecall is
- used on a method that is not part of a dual
- interface.
- If you see this exception, you should either
- use the ComObj unit--which handles safecall
- correctly--or simply consider not using safecall.
-
- Correction to example in topic:
- Supporting state information in remote data modules
- -----------------------------------------------
- Topic keyword:
- incremental fetching, stateless data modules
-
- Corrected code (with changes noted):
-
- TDataModule1.ClientDataSet1BeforeGetRecords(
- Sender: TObject; var OwnerData: OleVariant);
-
- var
- CurRecord: TBookMark;
- begin
- with Sender as TClientDataSet do
- begin
- if not Active then Exit; //added
- CurRecord := GetBookmark;
- { save the current record }
- try
- Last; {locate the last record in the new packet }
- OwnerData := FieldValues['Key'];
- { Send key value to the application server }
- GotoBookmark(CurRecord);
- { return to current record }
- finally
- FreeBookmark(CurRecord);
- end;
- end;
-
- end;
-
- TRemoteDataModule1.Provider1BeforeGetRecords(
- Sender: TObject; var OwnerData: OleVariant);
-
- begin
- with Sender as TDataSetProvider do // was TProvider
- if not VarIsEmpty(OwnerData) then //added
- if DataSet.Locate('Key', OwnerData, []) then
- DataSet.Next; //added
- end;
-
- Comment:
- The key elements that distinguish this code from
- the example in the Help file are the Active check
- on the client, the unassigned variant check
- on the provider, and the call to move next past
- the located value (without which the last record
- of the previous fetch is fetched instead).
-
-
- Clarification: Converting MIDAS applications
- ------------------------------------------------
- The following is provided to clarify and expand
- upon the Help topic entitled "Converting MIDAS
- applications". The topic can be found in the
- What's New section of the Help system (keyword
- "MIDAS, upgrade issues"):
-
- The architecture to support multi-tier database
- (MIDAS) servers in stateless environments (such as
- MTS) has changed in Delphi 5. This has advantages
- over the previous architecture and offers a
- significant increase in performance and
- scalability by reducing message traffic. You will
- need to update your MIDAS 1 and MIDAS 2
- applications to work with MIDAS 3.
- Follow these steps to convert your MIDAS 1 or
- MIDAS 2 applications to MIDAS 3:
-
- 1. Open your MIDAS server.
- 2. View the Type Library.
- 3. Add the Borland MIDAS type library to the
- Uses page of the server library properties.
- In the Type Library Editor, select the Uses page,
- then right-click and select Show All Type
- Libraries.
- 4. Remove the BdeProv unit from the uses clause
- of your remote data module.
- 5. In the Type Library Editor change the Parent
- Interface of your server's interface to IAppServer
- (formerly IDataBroker).
- 6. Write down the name of any property that
- returns an IProvider and note any other methods
- that use IProvider. IProvider is no longer
- supported, so delete all properties that return an
- IProvider.
-
- Note: You need to rewrite methods that use
- IProvider. These properties are added when you
- export a provider and may include custom methods
- that use IProvider as well.
-
- 7. Save the type library.
- 8. Open your RemoteDataModule.
- 9. From the list that you created of old
- IProvider properties, make sure you have a
- TDataSetProvider for each of those properties. If
- any are missing, drop a TDataSetProvider and set
- its Name property to the old property name and
- connect it to the appropriate dataset. You may
- have to change the name of both the dataset and
- the TDataSetProvider, since the old name came from
- the dataset itself, but now it will come from the
- TDataSetProvider.
-
- Note: If porting a MIDAS 1 application, you may
- want to take this opportunity to convert your
- master detail relations into nested datasets.
-
- 10. The provider's Reset method has disappeared.
- Any calls to Reset can be changed to
- GetRecords(0,Recs, Ord(grReset));
- The provider's FetchData method has also gone
- away. Replace calls to FetchData with
- RowRequest(Packet, Ord(foRecord),EmptyParam);
- 11. For any TDataSetProvider that you don't want
- visible from the client, set TDataSetProvider's
- Exported property to False.
- 12. In the Code Editor delete the same IProvider
- properties from the data module that you deleted
- from the type library.
- 13. If your data module is derived from
- TDataModule, change it to derive from
- TRemoteDataModule.
- 14. Run the Socket Server and choose
- Connections|Registered Objects Only to disable
- added socket and web connection security. See
- Changes to MIDAS security for information on how
- to update your application to include this
- security.
- 15. Recompile the server.
- 16. Recompile the client.
-
- Refer also to Changes to MIDAS support for
- detailed information about the architectural
- changes.
-
- Note: Old get/set methods of type IProvider that
- you replace with TDataSetProviders do not have to
- be reimplemented. It's handled automatically as you
- add and implicitly export the TDataSetProviders.
-
-
- DOCUMENTATION USAGE NOTES
- ===============================================
-
- Print documentation/PDFs
- -----------------------------------------------
- The Tutorial section of the Quick Start manual
- included in the printed and online
- documentation is designed for Delphi Enterprise
- and Professional versions only. Other parts of
- the QuickStart book are applicable to all
- editions of the product.
-
- The complete Quick Start, Developer's Guide,
- and Object Pascal Language Guide (OPLG)
- sections of your online Help system are also
- available in print and Portable Document Format
- (PDF) editions. The Quick Start book
- accompanies all editions of Delphi, and
- the print version of the Developer's Guide is
- provided with the Enterprise and Professional
- versions only. The Quick Start (QS.PDF) and
- Developer's Guide (DG.PDF) PDFs are provided on
- your Delphi installation CD (in the folder
- /Documentation), and the OPLG PDF is available
- for download from the Delphi Documentation Web
- site at http://www.borland.com/techpubs/delphi.
-
- The site also provides links to the Borland
- E-Commerce area, where you may purchase
- additional copies of the Developer's Guide
- and the OPLG.
-
- Notes:
-
- -- To read PDFs, you must have the Adobe
- Acrobat Reader installed. An installer is
- available on the Enterprise and Professional
- edition CDs at \IB5\ADOBE\SETUP.EXE).
- Standard edition users can obtain the
- Reader installation at:
- http://www.adobe.com/prodindex/acrobat/readstep.html
-
- -- Since online Help is produced later in the
- development process than printed books and
- PDFs, the Help system will, in many cases,
- offer more up-to-date and accurate information
- than that found in supplied printed materials.
-
- Windows API index and topics
- -----------------------------------------------
- Due to limitations in the indexing capabilities
- of the Windows Help engine on Windows 95 and
- 98 machines, 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 from the Help menu.
-
- BDE and other Delphi tools
- -----------------------------------------------
- To directly access Help for BDE topics
- (Enterprise and Professional editions only) and
- other Delphi productivity tools, choose Delphi
- Tools on your Help menu.
-
- Note: Not all of the specified tools are
- included with all editions of Delphi. The main
- topic in the Delphi Tools Help file notes
- availability of each tool.
-
- Openhelp usage notes
- -----------------------------------------------
- If you see a red "X" among the items in
- Openhelp's Contents, Links, or Index lists, it
- simply indicates that the Openhelp project is
- referencing files that either do not exist on
- your system, are not installed, or do not exist
- in your edition of Delphi 5. To remove the item,
- right-click on it and choose "Remove Item".
-
- Downloading updated Help system components
- -----------------------------------------------
- The online Help files that accompany this
- release may be updated from time to time to
- provide corrections, clarification, additional
- examples and other new information. Updates
- will be available for download from the Delphi
- documentation Web site at
- http://www.borland.com/techpubs/delphi
-
-
- DELPHI ON THE WEB
- ===============================================
-
- In addition to numerous private sites that
- offer Delphi information, instruction, and
- samples, the following Delphi/Inprise
- Web-based resources provide a continuous stream
- of news, product information, updates, code,
- and other materials. You can connect to many of
- these resources directly from the Delphi Help
- menu.
-
- Delphi Direct [Help|Delphi Direct]
- -----------------------------------------------
- This IDE add-in resource provides an
- automatically updated list of links to the
- latest news, downloads and other information
- about Delphi and Inprise.
-
- Code Central
- -----------------------------------------------
- The CodeCentral Repository is a free,
- Delphi-powered, searchable database of code,
- tips, and other materials of interest to
- developers. For details and registration
- information, visit http://www.borland.com/codecentral
-
- The Borland/Inprise Web site
- -----------------------------------------------
-
- Borland/Inprise home page:
- http://www.borland.com or
- http://www.inprise.com
- [IDE: Help|Borland Home Page]
-
- Delphi home page:
- http://www.borland.com/delphi/
- [IDE: Help|Delphi Home Page]
-
- Delphi developer support:
- http://www.borland.com/devsupport/delphi/
- [IDE: Help|Delphi Developer Support]
-
- Delphi updates and other downloads:
- http://www.borland.com/devsupport/
- delphi/downloads/
-
- Delphi documentation site:
- http://www.borland.com/techpubs/delphi
-
- Information for C++ developers:
- http://www.borland.com/delphi/cpp/
-
- Information for Visual Basic developers:
- http://www.borland.com/delphi/vb/
-
- Newsgroups:
- http://www.borland.com/newsgroups/
-
- Electronic newsletter subscriptions:
- http://www.inprise.com/feedback/listserv.html
- International list server:
- http://www.inprise.com/feedback/intlist.html
-
- Worldwide offices and distributors:
- http://www.borland.com/bww/
-
- Inprise FTP site (anonymous access):
- ftp.borland.com
-
- TechFax
- -----------------------------------------------
- Technical documents are available via fax at:
- 1-800-822-4269 (North America)
-
-
- ===============================================
- Copyright (c) 1999 Inprise Corporation.
- All rights reserved.
-
-