Delphi 7                  Release Notes=======================================================This file contains important...
Borland is deprecating the use of the TServerSocket    and TClientSocket from the unit ScktComp. It is    recommended that...
2. With a manifest included in the executable as a   resource.For the stand-alone manifest follow these steps:I) Using Not...
DemosToolsAPIXPAppWiz.NET compiler warnings----------------------The Delphi 7 dcc32 compiler now supports threeadditional ...
procedure p;         end;Unsafe_Code: absolute variables, Addr(), Ptr(), Hi(),Lo(), Swap() standard procedures, BlockRead ...
(405).Workaround:Remove the tag from url in the global functionthat returns the Interface:     const//         defURL = ht...
InterBase version support, Dialect 3 features---------------------------------------------Delphi 7 supports InterBase 6.5....
INTERBASE driver behavioral difference:---------------------------------------NUMERIC data type mapping.   The dbExpress d...
-----------------------The provided DB2 driver is certified for DB2 version 7.The client version and server version must b...
download site.2) Master detail:   a) When trying to open a master-detail as a nested      dataset and if the detail link f...
large amounts of data (such as large strings) to MySQL.Oracle notes for dbExpress--------------------------When qualifying...
to OPS$XXX, where XXX is the OS Authenticated user.=======================================================ABOUT EDITING TH...
Delphi home page:  http://www.borland.com/delphi/  [IDE: Help|Delphi Home Page]Delphi developer support:  http://www.borla...
Upcoming SlideShare
Loading in …5
×

Readme

1,511 views
1,450 views

Published on

Delphi 7 Readme

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,511
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Readme

  1. 1. Delphi 7 Release Notes=======================================================This file contains important supplementary and late-breaking information that may not appear in the mainproduct documentation. We recommend that you read thisfile in its entirety.For information on new features in this release, choose"Whats New" in the online Help contents.=======================================================CONTENTS* OTHER RELEASE NOTES INCLUDED WITH THIS PRODUCT* NOTES AND ISSUES:* ABOUT EDITING THE REGISTRY* PRODUCT INFORMATION ON THE WEB=======================================================OTHER RELEASE NOTES INCLUDED WITH THIS PRODUCT* INSTALL contains system requirements and product installation information.* DEPLOY contains information about redistributing your applications.* LICENSE contains information on licensing allowances and limitations for this product and other Borland software that is bundled with it. The three files listed above, along with this file, are installed in your main product directory (default: C:Program FilesBorlandDelphi7).=======================================================NOTES AND ISSUESDeprecated Components Borland is deprecating the use of TSQLClientDataSet and TBDEClientDataSet. Borland recommends that you use TSimpleDataSet for simple, two-tier applications. TSQLClientDataSet and TBDEClientDataSet are no longer displayed on the Component palette. If you require backward compatibility, you can still access TSQLClientDataSet and TBDEClientDataSet in the Demos directory (by default, C:Program FilesBorlandDelphi7Demos).
  2. 2. Borland is deprecating the use of the TServerSocket and TClientSocket from the unit ScktComp. It is recommended that you use the Indy components for socket operations. The TServerSocket and TClientSocket will no longer be installed on the component palette by default. If you require the use of these components then you can install the design time package named dclsockets70.bpl, found in your bin directory. For deployment with runtime packages, you will need to deploy rtl70.bpl and any other required packages.Changes in StrUtils-------------------The StrUtils unit contains three sets of changes, allrelating tomulti-byte character set (MBCS) support. * Previously, LeftStr, RightStr, and MidStr each took and returned AnsiString values, and did not support MBCS strings. Each of these functions has been replaced by a pair of overloaded functions, one that takes and returns AnsiString, and one that takes and returns WideString. The new functions correctly handle MBCS strings. This change breaks code that uses these functions to store and retrieve byte values in AnsiStrings. Such code should use the new byte-level functions described below. * New functions LeftBStr, RightBStr, and MidBStr provide the byte-level manipulation previously provided by LeftStr, RightStr, and MidStr. * New functions AnsiLeftStr, AnsiRightStr, and AnsiMidStr are the same as the new AnsiStr LeftStr, RightStr, and MidStr functions, except that they are not overloaded with equivalent WideString functions.XP Themes---------This build does not include a manifest for yourprojects. To tell your applications to use version 6.0of comctl32.dll you need to create and edit themanifest yourself.There are two ways to do this:1. With a stand-alone manifest file added to the same directory of the executable.
  3. 3. 2. With a manifest included in the executable as a resource.For the stand-alone manifest follow these steps:I) Using Notepad create a file called "Project1.exe.manifest" and add the following lines:<?xml version="1.0" encoding="UTF-8" standalone="yes"?><assembly xmlns="urn:schemas-microsoft-com:asm.v1"manifestVersion="1.0"><assemblyIdentityprocessorArchitecture="*"version="1.0.0.0"type="win32"name="Project1"/><description>Project1 Description</description><dependency><dependentAssembly><assemblyIdentitytype="win32"name="Microsoft.Windows.Common-Controls"version="6.0.0.0"publicKeyToken="6595b64144ccf1df"language="*"processorArchitecture="*" /></dependentAssembly></dependency></assembly>II) Save the file and place it in the same directory as the application executable.If you dont like the idea of having the manifest as aseparated file you can include it into your executableas a resource.I) Create a resource file (again using Notepad) containing the following line: 1 24 "Project1.exe.Manifest"II) Compile the resource file with brcc32.exe with the following command: C:Project1> brcc32 WindowsXP.RCIII) Now add the following line to your projects main form: {$R WindowsXP.RES}NOTE: To automatically configure XP Themes in your project you can use the XP Application Wizard demo. For more information see the readme file in
  4. 4. DemosToolsAPIXPAppWiz.NET compiler warnings----------------------The Delphi 7 dcc32 compiler now supports threeadditional compiler warnings: Unsafe_Type,Unsafe_Code, and Unsafe_Cast. These warnings aredisabled by default, but can be enabled with sourcecode compiler directives {$WARN UNSAFE_CODE ON},compiler command line switches (dcc32 -W+UNSAFE_CODE),and in Project|Options.NOTE: There is no space before or after the "+" in the command line switch)"Unsafe" in all three messages refers to types oroperations which static code analysis cannot prove tonot overwrite memory. For example, data types thatcarry bounds information at runtime such as DelphiStrings or dynamic arrays can be bounds-checked atruntime, and tracked in static analysis, to ensure thatmemory accesses are within the limits of the allocateddata. Data types that do not carry bounds informationat compile time or runtime (such as PChar) cannot beproven safe. Unsafe doesnt necessarily mean the codeis broken or flawed, it simply means that it usesprogramming techniques that cannot be verified as safeby static code analysis. In a secured executionenvironment such as .NET, such code is assumed to beunsafe and a potential security risk.Delphi 7 developers can use these new warnings toidentify data types, code or programming techniquesthat may be difficult to port to a managed codeenvironment such as .NET. These messages are notspecific to the .NET platform. The warnings areconservative - some things we warn about in D7 we mightactually be able to support in Delphi for .NET, butwere not sure yet. The warnings are not complete -there may be problematic types or code situations forwhich the Delphi 7 compiler does not issue an unsafewarning.Unsafe_Type: Types such as PChar, untyped pointer,untyped var and out parameters, file of <type>, 6 bytereals (Real48), variant records (records containingoverlapping fields) and old-style objects("TMyObject = object"). * "old" object type c = object i: Integer;
  5. 5. procedure p; end;Unsafe_Code: absolute variables, Addr(), Ptr(), Hi(),Lo(), Swap() standard procedures, BlockRead andBlockWrite, the Fail() standard procedure, GetMem(),FreeMem(), and ReallocMem() * inline assembler blocks (asm end) * @ operator * modifying string index elements, e.g s := Hoho; s[2] := a; // <-- "Unsafe code String index to var param"Unsafe_Cast: Casting an object instance to a type thatis not an ancestor or descendent of the instance type,casting a record type to anything elseChange to VCL SubComponents streaming-------------------------------------In Delphi 7, we corrected a problem where the csLoadingflag was never set for subcomponents, nor was thesubcomponents Loaded method called. When a component thathas subcomponents is streamed, the subcomponents will havetheir csLoading flag set and their Loaded method called.This change creates a complication for any subcomponentproperties that are writable. If you allow yoursubcomponent property to be assigned to an externalcomponent reference then you cannot free your subcomponentuntil its owners Loaded method is called otherwise thestreaming system will attempt to call the subcomponentsLoaded method after the subcomponent has been freed.Apache------Support for Apache 2 is for the 2.0.39 version. It willwork with later versions as long as they are binarycompatible.NOTE: Due to a known bug with Apache 1.3.22, do not develop CGI programs or shared objects for this version. See http://bugs.apache.org/index.cgi/full/8538UDDI Registry entries---------------------Some UDDI Registry entries contain an Accesspoint URL witha bookmark tag at the end. When accessed these servicesoften generate the error message Method not allowed
  6. 6. (405).Workaround:Remove the tag from url in the global functionthat returns the Interface: const// defURL = http://someservice/somewhere#tag;// is changed to defURL = http://someservice/somewhere;Japanese Input system on Windows XP-----------------------------------The MS IME2002 Japanese input system included withWindows XP can cause the Debugger in the IDE tostall.Workaround:Remove Microsoft IME Character Code Dictionary fromyour system dictionaries list. Simply un-checking thisoption from the dictionary list will not solve theproblem. To remove this dictionary:1) Open the IME Toolbar.2) Select Tools|Properties and click on the Dictionary tab.3) Select "Microsoft IME Character Code Dictionary" from the System dictionaries listbox4) Click Remove.Database--------* The provided DB2 driver is certified for DB2 version 7 only. The client version and server version must match. BDE also supports DB2 version 7 only.* The Oracle driver provided for dbExpress components is certified for Oracle 9i. BDE and ADO have been certified with Oracle 8.1.7 and 8.1.6. In all cases, the client version and server version must be the same.* Oracle 9i types - ORACLE 9i types TIMESTAMP (introduced for JDK 1.3.1 compliance) and other types like XMLType, Temp tables, etc. are not yet supported. Use "DATE" instead.* The Borland Database Engine CAB file (BDEINST.CAB) is no longer digitally signed. This CAB file is provided for backward compatibility. For new applications, we recommend deploying BDE with the BDE merge modules.
  7. 7. InterBase version support, Dialect 3 features---------------------------------------------Delphi 7 supports InterBase 6.5. The client version andserver version must be the same.Currently, the driver does not support the ARRAY type.To use the new InterBase 6.5 Dialect 3 features in BDE,add an entry to your Windows registry under HKEY_LOCAL_MACHINESOFTWAREBorlandDatabase Engine SettingsDriversIntrbaseDb OpenSQLDIALECTand set the String Value to "3".When an InterBase alias is created, the new entry willbe available in the .CFG file.To use InterBase 5.6, SQLDIALECT can be set to "1"(existing IB aliases which do not have the SQLDIALECTentry default to SQLDIALECT=1 or to the registrysetting when the SQLDIALECT entry is added to theregistry).InterBase 6.5 implementation note---------------------------------If you are using a WebSnap application with InterBase6.5, a local database connection is not recommended.Instead, use a client/server connection specified by aprotocol-specific prefix to the path to the database.Examples:Local connection (not recommended): C:PathToDatabaseDBName.gdbTCP/IP connection on Windows: saturn:C:PathToDatabaseDBName.gdbTCP/IP connection on UNIX: jupiter:/usr/PathTo/Database/DBName.gdbNetBEUI connection: venusC:PathToDatabaseDBName.gdbIPX/SPX connection: mars@vol2:PathToDatabaseDBName.gdbIf the WebSnap application is on the same machine asthe server, you can use localhost: localhost:C:PathToDatabaseDBName.gdb
  8. 8. INTERBASE driver behavioral difference:---------------------------------------NUMERIC data type mapping. The dbExpress driver for INTERBASE now maps NUMERIC data types to fldBCD instead of fldINT16, fldINT32, fldFLOAT.dbExpress---------TSQLDataSet now has DefaultRowsetSize = 20 (Oracleonly). To use a different RowSetSize, add theRowSetSize property manually (e.g., "RowsetSize = 200")into dbxconnections.ini, for existing connections, orinto dbxdrivers.ini to have the RowSetSize propertyincluded in new connections. RowsetSize can also bemodified in code, as shown here: "SQLConnection1.Params.Values[RowsetSize] := 200"dbExpress now includes MySQL 3.23.49 support with a newdriver (dbexpmysql.dll). To use the new driver, specify LibraryName = "dbexpmysql.dll"in the Object Inspector or in dbxdrivers.ini.dbExpress components and MySQL transactions-------------------------------------------MySQL doesnt support more than one active statementper connection. To perform multiple SQL requests with asingle TSQLConnection the dbExpress components cloneconnection. There is a bug in maintaining stateinformation on the no.of active statements with respectto a TSQLConnection. This might cause serious failuresin transaction as the transaction might be started onone connection and commit or rollback might behappening on another connection.Workaround:Before you start a MySQL transaction make sureTSQLConnection.ActiveStatements is 0. If its not 0 thenclose the TSQLConnection and reopen it and that shouldclear it. All your transaction activity should then goon a single connection.DB2 notes for dbExpress
  9. 9. -----------------------The provided DB2 driver is certified for DB2 version 7.The client version and server version must be thesame. BDE also supports DB2 version 7.Because of a known DB2 bug, the DB2 client returns onlyone record at a time when a request for a block fetchis made, even with RowsetSize option > 1.Timestamp issues----------------The dbExpress DB2 driver rounds the TIMESTAMPfractional value and there could be some precision lostdepending upon the data retrieved. When you apply backchanges the old value will not match the one on theserver and ApplyUpdates() will fail.Workaround:Make sure DB2 TIMESTAMP is not part of indexed columnsand set the DataSetProvider Update mode to WhereKeyinstead of WhereAll.Informix BLOB/CLOB fields (dbExpress)-------------------------------------A new global variable, InformixLob, is available toallow you to work with Informix BLOB and CLOB fields.The variable is required because Informix BLOB(fldBLOB, fldstHBINARY) and CLOB (fldBLOB, fldstHMEMO)fields are mapped as ftOraBlob and ftOraClob,respectively, and the DataSnap resolver performsspecial query generation when resolving OracleBLOB/CLOB fields, but not when resolving InformixBLOB/CLOBs. To address this issue, set InformixLobto True when using Informix BLOB/CLOBs, and switch itback to False (the default) when using OracleBLOB/CLOBs.NOTE: The new Informix driver (dbexpinf.dll) has been tested with Informix version 9.2.1 client/server and 9.2.1 client with SE server.MSSQL driver - Known issues---------------------------1) Connection with a Blank Password/OS Authentication: With the current MSSQL driver you cant connect using a blank password or with OS Authentication = True. A patch will be made available soon at Borlands support
  10. 10. download site.2) Master detail: a) When trying to open a master-detail as a nested dataset and if the detail link field is an INTEGER type and defined NOT NULL you will get a SQL Error "SQL State:HY000, SQL Error Code: 0, Invalid Input parameter values. Check the status values for details" A patch will be made available soon at Borlands support download site. b) ApplyUpdates() on a master-detail with "poFetchDetailsOnDemand" = True causes a SQL error "Cannot create new connection because in manual or distributed transaction mode". Workaround: poFetchDetailsOnDemand = False (default)dbExpress MSSQL driver BLOB access-----------------------------------dbExpress MSSQL uses ISequentialStream (OLEDBinterface) to access blobs from SQL Server. MS OLEDBprovider (SQLOLEDB) doesnt support accessing more thanone in a SELECT using ISequentialStream. So, if you areprojecting more than one blob column in your queriesthe dbExpress driver will not use the ISequentialStreamto access blobs. Instead, it will bind huge buffers toget the blob data. The buffer size is determined by theBlobSize entry in dbxconnections.ini. Make sure to setit to an appropriate size to improve performance whenmore than one blob column is projected.MySQL limitation (dbExpress)----------------------------MySQL cant filter with FLOAT fields in the WHEREclause. Since this limitation prevents updates withTClientDataset and TDataSetProvider, use DOUBLEinstead. For more information, see the MySQLdocumentation.Huge Text in MySQL (dbExpress)------------------------------MySQL Server has a startup parameter called max-allowed-packet that, by default, is set to 1 megabytefor most MySQL servers. Increase the value of max-allowed-packet if you encounter difficulty writing
  11. 11. large amounts of data (such as large strings) to MySQL.Oracle notes for dbExpress--------------------------When qualifying a table name with a user name, you mustuse quotes around the table name when CommandType isset to ctTable.Oracle LONG and LONG RAW fields (dbExpress)-------------------------------------------When using Oracle, the size of LONG and LONG RAW fieldscannot be determined without fetching the whole field.So if BLOB SIZE is set to -1, LONG and LONG RAW fieldsare truncated to 64K. Recommendation: Set BLOB SIZE toyour best estimate of the blob size.Configuring driver files (dbExpress)-------------------------------------The Oracle driver now supports Trim Char, MultipleTransaction and OS Authentication. You need to addthese settings to your dbxdrivers for new aliasesand/or update dbxconnections in order to include thesesettings for old aliases.Please append the following at the end of dbxdriversfile if you are using a driver file from an earlierversion of Delphi: [Multiple Transaction] False=0 True=1 [Trim Char] False=0 True=1 [OS Authentication] False=0 True=1Add the following under the [Oracle] section indbxdrivers and under your existent Oracle alias. OS Authentication=False Multiple Transaction=False Trim Char=FalseOracle OS authentication (dbExpress)-------------------------------------To get the correct list of tables and other schemaobjects in the dbExpress components, set the User_Name
  12. 12. to OPS$XXX, where XXX is the OS Authenticated user.=======================================================ABOUT EDITING THE WINDOWS REGISTRYWarning: 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.=======================================================PRODUCT INFORMATION ON THE WEBIn addition to numerous private sites that offerinformation, instruction, and samples, the followingBorland Web-based resources provide a continuous streamof news, product information, updates, code, and othermaterials. You can connect to many of these resourcesdirectly from the Help menu.Delphi Direct [Help|Delphi Direct]----------------------------------This IDE add-in resource provides an automaticallyupdated list of links to the latest news, downloads,and other information about Delphi and Borland.Code Central------------The CodeCentral Repository is a free, searchabledatabase of code, tips, and other materials of interestto developers. For details and registrationinformation, visit http://codecentral.borland.com/The Borland Web site--------------------Borland Software Corporation home page: http://www.borland.com [IDE: Help|Borland Home Page]
  13. 13. 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/delphiNewsgroups: http://www.borland.com/newsgroups/Worldwide offices and distributors: http://www.borland.com/bww/FTP site (anonymous access): ftp.borland.com=======================================================Copyright (c) 2002 Borland Software Corporation.All rights reserved.

×