Delphi 6 Update Pack 1 Release Notes ============================================================ This file contains important supplementary and late-breaking information that may not appear in the main product documentation, and supersedes information contained in other documents that accompany this product. We recommend that you read this file in its entirety. IMPORTANT: Delphi 6 must be closed before running the update executable. ============================================================ CONTENTS * WHAT'S NEW * SOAP UPDATE * FILES INSTALLED BY THIS UPDATE PACK * OTHER DELPHI RELEASE NOTES * RESOURCE NEWS * HELP UPDATES ============================================================ WHAT'S NEW In addition to a number of significant improvements to Delphi's SOAP (Simple Object Access Protocol) implementation, this Update Pack offers a number of important modifications, and addresses a number of issues discovered in the initial release of this product. The following is a summary of Update Pack improvements. SOAP- specific improvements are listed separately later in this document. For details on modifications and improvements to these and other features, see the file D601FIXES.html, installed to your Delphi6 root directory. dbExpress ------------------------------ [Enterprise and Professional editions only] * TSQLDataSet and TSQLClientDataSet now have DefaultRowsetSize = 20 (Oracle only). To use a different RowSetSize, add the RowSetSize property manually (e.g., "RowsetSize = 200") into dbxconnections.ini, for existing connections, or into dbxdrivers.ini to have the RowSetSize property included in new connections. RowsetSize can also be modified in code, as shown here: "SQLConnection1.Params.Values['RowsetSize'] := '200'" * dbExpress now includes mysql 3.23.41 support with a new driver (dbexpmysql.dll). To use the new driver, specify LibraryName = "dbexpmysql.dll" in the Object Inspector or in dbxdrivers.ini. For details on these and other modifications to dbExpress, see D601FIXES.html. ActionBand ------------------------------ ActionBand classes (Enterprise and Professional editions only) include interface changes and a number of corrections and improvements. Because of the interface changes, recompilation of any application using ActionBand classes is necessary because ActionBands are statically linked into your application and are not included in any runtime packages. The update also now supports the ability to add separators to menus by pressing the "-" key while positioned on the menu where you want a separator to appear. To add a separator onto a TActionToolBar, simply press the insert key and set the new item's caption to "|" or "-". For more information and a tutorial on using ActionBands (and other product features, as noted in the "Resource News" section later in this document), see: http://www.geocities.com/delphihelp COM+ Event Objects ------------------------------ Generated code now compiles correctly when adding a method with params of different types to a COM+ Event interface. Type library importer issues ------------------------------ A number of issues relating to the type library importer have been corrected. Among the corrections: * Array properties are now correctly generated. * The MS HTML library now compiles correctly. Other corrections ------------------------------ Modifications and improvements have also been applied to the following features. See D601FIXES.html for details. * XML data binding wizard * XMLMapper * ADO * Database controls * WebSnap * Type library importer * VarArray issue in variants ============================================================ SOAP UPDATE The following is a summary of modifications to and issues addressed in the updated SOAP implementation included in this Update Pack. Byte arrays are now Base64-encoded ------------------------------ Parameters of type 'array of Byte' or TByteDynArray are now serialized as 'base64Binary'. (Note: Variants that contain an array of bytes are also serialized as 'base64Binary'.) Boolean values now exposed with proper case ------------------------------ Boolean values are now serialized as 'true' or 'false' instead of 'True' and 'False'. Configurable Target Namespace ------------------------------ The TWSDLHTMLPublish component now exposes a 'TargetNamespace' property. The value defaults to 'http://www.borland.com/soapServices'. With this new property in place, we strongly recommend that you update the TargetNamespace of your Web Services before deployment. New API to access SOAP Data Module ------------------------------ The 'GetSOAPWebModule' method of WebBrokerSOAP now provides access to the Web Module currently being dispatched, allowing your Web Services method to access the Data Module. This new functionality could be used in cases where your handlers may need access to Database components, for example. New Import Options for 'out' parameters ------------------------------ The 'Advanced' tab of the 'Web Services Import' expert provides a new 'One out part implies function' option. When this option is enabled, any method that exposes one 'out' parameter is converted to a function with that 'out' parameter as the return value. This option is enabled by default. Option to control empty SOAPAction headers ------------------------------ The 'THTTPSoapPascalInvoker' component exposes a new 'InvokeOptions' property that contains one option: 'soNovalueForEmptySOAPAction'. When the option is enabled, Delphi sends out a SOAPAction header with no value for Services that specify empty SOAPActions. If not enabled, the default action is to send a SOAPAction header with the value "" (two double quotes). Methods of base interfaces are now also exposed as operations ------------------------------ Example: ICalcBase = interface(IInvokable) function add(I: Integer; J: Integer): Integer; function sub(I: Integer: J: Integer): Integer; // etc... end; ICalculator = interface(ICalcBase) function sine(const val: Extended): Extended; // .... end; In the case illustrated above, registering ICalculator will now expose a portType 'ICalculator' with operations 'add', 'sub, 'sine', etc. Note that while you don't need to explicitly register the 'ICalcBase' interface, your implementation class must explicitly list both interfaces, as shown here: TCalculator = class (TInvokable, ICalculator, ICalcBase) // etc; end; Other SOAP issues addressed in this patch ------------------------------ * soSendUntyped option issue: The 'sendUnTyped' option of the THTTPSoapPascalInvoker' has been corrected for cases where types were still being sent. * TXSDate now handles non-US date formats (addresses issue in which the Date serializing class was not 'international date formats friendly'). ============================================================ FILES INSTALLED BY THIS UPDATE PACK This self-extracting, self-executing Update Pack refreshes the following files* in your current Delphi 6 installation: \Bin\coreide60.bpl \Bin\dbexpmysql.dll \Bin\dbexpora.dll \Bin\DCC32.EXE \Bin\DCC60.DLL \Bin\dclact60.bpl \Bin\dclact60.map \Bin\dclnet60.bpl \Bin\dclnet60.map \Bin\dclsoap60.bpl \Bin\dclsoap60.map \Bin\dclwbm60.bpl \Bin\dclwbm60.map \Bin\dclwebsnap60.bpl \Bin\dclwebsnap60.map \Bin\delphi32.exe \Bin\delphipro60.bpl \Bin\Idl2pas.jar \Bin\Idl2PasWizardPkg.bpl \Bin\Idl2PasWizardPkg.map \Bin\proide60.bpl \Bin\tlib60.bpl \Bin\xmlide60.bpl \Bin\xmlmapper.exe \Doc\Invoker.int \Lib\ActnCtrls.dcu \Lib\ActnMan.dcu \Lib\ActnMenus.dcu \Lib\ADODB.dcu \Lib\ApacheApp.dcu \Lib\AutoAdap.dcu \Lib\BandActn.dcu \Lib\CGIApp.dcu \Lib\Classes.dcu \Lib\ComCtrls.dcu \Lib\ComObj.dcu \Lib\Consts.dcu \Lib\Contnrs.dcu \Lib\CustomizeDlg.dcu \Lib\CustomizeDlg.dfm \Lib\DB.dcu \Lib\DBAdapt.dcu \Lib\DBClient.dcu \Lib\DBCtrls.dcu \Lib\DBExpMySQL.dcu \Lib\dbexpmysql.lib \Lib\DBExpORA.dcu \Lib\dbexpora.lib \Lib\dclact.dcp \Lib\dclsoap.dcp \Lib\dclwebsnap.dcp \Lib\DsnDBCst.dcu \Lib\DTDSchema.dcu \Lib\FMTBcd.dcu \Lib\HTTPApp.dcu \Lib\IniFiles.dcu \Lib\IntfInfo.dcu \Lib\Invoker.dcu \Lib\InvokeRegistry.dcu \Lib\ISAPIApp.dcu \Lib\ISAPIThreadPool.dcu \Lib\Math.dcu \Lib\MidProd.dcu \Lib\msxmldom.dcu \Lib\OPToSoapDomConv.dcu \Lib\Provider.dcu \Lib\Rio.dcu \Lib\rtl.dcp \Lib\SessColn.dcu \Lib\SiteComp.dcu \Lib\SiteProd.dcu \Lib\SoapConn.dcu \Lib\SoapConst.dcu \Lib\SoapHTTPClient.dcu \Lib\SOAPHTTPPasInv.dcu \Lib\SoapHTTPTrans.dcu \Lib\soappasinv.dcu \Lib\SqlConst.dcu \Lib\SqlExpr.dcu \Lib\SqlTimSt.dcu \Lib\StdActnMenus.dcu \Lib\StdActns.dcu \Lib\StrUtils.dcu \Lib\System.dcu \Lib\SysUtils.dcu \Lib\TypeTrans.dcu \Lib\Variants.dcu \Lib\vcl.dcp \Lib\WebAdapt.dcu \Lib\WebAuto.dcu \Lib\WebBrokerSOAP.dcu \Lib\WebComp.dcu \Lib\WebContnrs.dcu \Lib\WebDisp.dcu \Lib\webdsnap.dcp \Lib\WebModu.dcu \Lib\WebReq.dcu \Lib\WebScript.dcu \Lib\WebServExp.dcu \Lib\WebServImp.dcu \Lib\WebSess.dcu \Lib\websnap.dcp \Lib\WebUsers.dcu \Lib\WSDLBind.dcu \Lib\WSDLIntf.dcu \Lib\WSDLItems.dcu \Lib\WSDLNode.dcu \Lib\WSDLPub.dcu \Lib\XMLBindGen.dcu \Lib\XMLDoc.dcu \Lib\XMLSchema.dcu \Lib\xmlutil.dcu \Lib\XSBuiltIns.dcu \Lib\Debug\ActnCtrls.dcu \Lib\Debug\ActnMan.dcu \Lib\Debug\ActnMenus.dcu \Lib\Debug\ADODB.dcu \Lib\Debug\ApacheApp.dcu \Lib\Debug\AutoAdap.dcu \Lib\Debug\BandActn.dcu \Lib\Debug\CGIApp.dcu \Lib\Debug\Classes.dcu \Lib\Debug\ComCtrls.dcu \Lib\Debug\ComObj.dcu \Lib\Debug\Consts.dcu \Lib\Debug\Contnrs.dcu \Lib\Debug\CustomizeDlg.dcu \Lib\Debug\DB.dcu \Lib\Debug\DBAdapt.dcu \Lib\Debug\DBClient.dcu \Lib\Debug\DBCtrls.dcu \Lib\Debug\DsnDBCst.dcu \Lib\Debug\DTDSchema.dcu \Lib\Debug\FMTBcd.dcu \Lib\Debug\HTTPApp.dcu \Lib\Debug\IniFiles.dcu \Lib\Debug\IntfInfo.dcu \Lib\Debug\InvokeRegistry.dcu \Lib\Debug\ISAPIApp.dcu \Lib\Debug\ISAPIThreadPool.dcu \Lib\Debug\Math.dcu \Lib\Debug\MidProd.dcu \Lib\Debug\msxmldom.dcu \Lib\Debug\OPToSoapDomConv.dcu \Lib\Debug\Provider.dcu \Lib\Debug\Rio.dcu \Lib\Debug\SessColn.dcu \Lib\Debug\SiteComp.dcu \Lib\Debug\SiteProd.dcu \Lib\Debug\SoapConn.dcu \Lib\Debug\SoapConst.dcu \Lib\Debug\SoapHTTPClient.dcu \Lib\Debug\SOAPHTTPPasInv.dcu \Lib\Debug\SoapHTTPTrans.dcu \Lib\Debug\soappasinv.dcu \Lib\Debug\SqlConst.dcu \Lib\Debug\SqlExpr.dcu \Lib\Debug\SqlTimSt.dcu \Lib\Debug\StdActnMenus.dcu \Lib\Debug\StdActns.dcu \Lib\Debug\StrUtils.dcu \Lib\Debug\System.dcu \Lib\Debug\SysUtils.dcu \Lib\Debug\TypeTrans.dcu \Lib\Debug\Variants.dcu \Lib\Debug\WebAdapt.dcu \Lib\Debug\WebAuto.dcu \Lib\Debug\WebBrokerSOAP.dcu \Lib\Debug\WebComp.dcu \Lib\Debug\WebContnrs.dcu \Lib\Debug\WebDisp.dcu \Lib\Debug\WebModu.dcu \Lib\Debug\WebReq.dcu \Lib\Debug\WebScript.dcu \Lib\Debug\WebServExp.dcu \Lib\Debug\WebServImp.dcu \Lib\Debug\WebSess.dcu \Lib\Debug\WebUsers.dcu \Lib\Debug\WSDLBind.dcu \Lib\Debug\WSDLIntf.dcu \Lib\Debug\WSDLItems.dcu \Lib\Debug\WSDLNode.dcu \Lib\Debug\WSDLPub.dcu \Lib\Debug\XMLBindGen.dcu \Lib\Debug\XMLDoc.dcu \Lib\Debug\XMLSchema.dcu \Lib\Debug\xmlutil.dcu \Lib\Debug\XSBuiltIns.dcu \Lib\Debug\IDL3\corba.dcu \Lib\Debug\IDL3\cosevent.dcu \Lib\Debug\IDL3\cosnaming.dcu \Lib\Debug\IDL3\orbpas30.dcu \Lib\Debug\IDL4\corba.dcu \Lib\Debug\IDL4\cosevent.dcu \Lib\Debug\IDL4\cosnaming.dcu \Lib\Debug\IDL4\orbpas40.dcu \Lib\IDL3\Corba.dcu \Lib\IDL3\CosEvent.dcu \Lib\IDL3\CosNaming.dcu \Lib\IDL3\OrbPas30.dcu \Lib\IDL4\Corba.dcu \Lib\IDL4\CosEvent.dcu \Lib\IDL4\CosNaming.dcu \Lib\IDL4\OrbPas40.dcu \MergeModules\ADORTL.Msm \MergeModules\BaseRTL.Msm \MergeModules\BaseVCL.Msm \MergeModules\DatabaseRTL.Msm \MergeModules\DatabaseVCL.Msm \MergeModules\DataSnap.Msm \MergeModules\dbExpress.Msm \MergeModules\Internet.Msm \MergeModules\WebDataSnap.Msm \MergeModules\WebSnap.Msm \MergeModules\XMLRTL.Msm \Source\Internet\ApacheApp.pas \Source\Internet\AutoAdap.pas \Source\Internet\CGIApp.pas \Source\Internet\DBAdapt.pas \Source\Internet\DTDSchema.pas \Source\Internet\HTTPApp.pas \Source\Internet\ISAPIApp.pas \Source\Internet\ISAPIThreadPool.pas \Source\Internet\MidProd.pas \Source\Internet\msxmldom.pas \Source\Internet\SessColn.pas \Source\Internet\SiteComp.pas \Source\Internet\SiteProd.pas \Source\Internet\WebAdapt.pas \Source\Internet\WebAuto.pas \Source\Internet\WebComp.pas \Source\Internet\WebContnrs.pas \Source\Internet\WebDisp.pas \Source\Internet\WebModu.pas \Source\Internet\WebReq.pas \Source\Internet\WebScript.pas \Source\Internet\WebServExp.pas \Source\Internet\WebSess.pas \Source\Internet\WebUsers.pas \Source\Internet\WSDLBind.pas \Source\Internet\WSDLIntf.pas \Source\Internet\WSDLItems.pas \Source\Internet\WSDLPub.pas \Source\Internet\XMLBindGen.pas \Source\Internet\XMLDoc.pas \Source\Internet\XMLSchema.pas \Source\Internet\xmlutil.pas \Source\Rtl\Common\Classes.pas \Source\Rtl\Common\ComObj.pas \Source\Rtl\Common\Contnrs.pas \Source\Rtl\Common\IniFiles.pas \Source\Rtl\Common\Math.pas \Source\Rtl\Common\StrUtils.pas \Source\Rtl\Corba\Corba.pas \Source\Rtl\Corba\CosEvent.pas \Source\Rtl\Corba\CosNaming.pas \Source\Rtl\Corba\OrbPas30.pas \Source\Rtl\Corba40\Corba.pas \Source\Rtl\Corba40\CosEvent.pas \Source\Rtl\Corba40\CosNaming.pas \Source\Rtl\Corba40\OrbPas40.pas \Source\Rtl\Sys\System.pas \Source\Rtl\Sys\SysUtils.pas \Source\Rtl\Sys\Variants.pas \Source\Soap\IntfInfo.pas \Source\Soap\InvokeRegistry.pas \Source\Soap\OPToSoapDomConv.pas \Source\Soap\SoapConn.pas \Source\Soap\SoapConst.pas \Source\Soap\SoapHTTPClient.pas \Source\Soap\SOAPHTTPPasInv.pas \Source\Soap\SoapHTTPTrans.pas \Source\Soap\soappasinv.pas \Source\Soap\TypeTrans.pas \Source\Soap\WebBrokerSOAP.pas \Source\Soap\WSDLNode.pas \Source\Soap\XSBuiltIns.pas \Source\Vcl\ActnCtrls.pas \Source\Vcl\ActnMan.pas \Source\Vcl\ActnMenus.pas \Source\Vcl\ADODB.pas \Source\Vcl\BandActn.pas \Source\Vcl\ComCtrls.pas \Source\Vcl\Consts.pas \Source\Vcl\CustomizeDlg.dfm \Source\Vcl\CustomizeDlg.pas \Source\Vcl\DB.pas \Source\Vcl\DBClient.pas \Source\Vcl\DBCtrls.pas \Source\Vcl\FMTBcd.pas \Source\Vcl\Provider.pas \Source\Vcl\SqlConst.pas \Source\Vcl\SqlExpr.pas \Source\Vcl\SqlTimSt.pas \Source\Vcl\StdActnMenus.pas \Source\Vcl\StdActns.pas \Windows\System32\adortl60.bpl \Windows\System32\adortl60.map \Windows\System32\dbexpress60.bpl \Windows\System32\dbexpress60.map \Windows\System32\dbrtl60.bpl \Windows\System32\dbrtl60.map \Windows\System32\dsnap60.bpl \Windows\System32\dsnap60.map \Windows\System32\inet60.bpl \Windows\System32\inet60.map \Windows\System32\rtl60.bpl \Windows\System32\rtl60.map \Windows\System32\vcl60.bpl \Windows\System32\vcl60.map \Windows\System32\vcldb60.bpl \Windows\System32\vcldb60.map \Windows\System32\webdsnap60.bpl \Windows\System32\webdsnap60.map \Windows\System32\websnap60.bpl \Windows\System32\websnap60.map \Windows\System32\xmlrtl60.bpl \Windows\System32\xmlrtl60.map * Note: Not all files listed above are included with all editions of Delphi 6. ============================================================ OTHER DELPHI RELEASE NOTES * README contains additional supplementary documentation. * INSTALL contains system requirements and product installation information, including product registration instructions. * 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 to your main product directory (default: C:\Program Files\Borland\Delphi6). You can also find detailed feature and compatibility information in DEL6NEW.HLP, which is part of the main online Help system (look for "What's New" in the Help contents or index). * BDEREADME, BDEINST and BDEDEPLOY 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 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 KNOWN ISSUES section later in this document. ============================================================ RESOURCE NEWS A quick-start tutorial for ActionBands (Enterprise and Professional editions only) and a set of ActionBand components that make menus and toolbars look like OfficeXP components are now available at Senior Engineer Steve Trefethen's site at http://www.geocities.com/delphihelp. The site also offers tutorials, links, and information-- including a review and screen shots of Code Completion features --for users of all editions and all levels of expertise. Note: This GeoCities-hosted site is not accessible in all countries. If you are not able to access the site, try Steve's secondary site at http://homepages.borland.com/strefethen. For a list of other Delphi and Borland resources, see the main product README file, located at the root of your Delphi 6 installation directory. ============================================================ HELP UPDATES A Delphi 6 Help update build was released prior to the release of this Update Pack, and is not installed with the patch. If you have already downloaded and installed a Help update that was compiled before August, 2001, you already have the latest Help files. To check your Help compile date, open Delphi6.hlp and choose Help|Version. If you have not updated your Delphi 6 Help system, you can download the latest Help files from http:/www.borland.com/techpubs/delphi HELP NOTES ------------------------------ * After installing updated Help on Windows 95, 98, or ME systems, delete the updated DELPHI6.OHI file in your /Delphi6/Help folder, and copy DELPHI6.OHX to DELPHI6.OHI. The replacement OHI will allow you to view a limited Index. For more on the Index limitation imposed by the WinHelp engine on 95/98/ME systems, see the README file at the root of your Delphi 6 installation directory. * Bookmarks and annotations are specific to a current Help set, and are not preserved when a new Help file is installed. * Other Help system notes and issues are described in detail in the main product README file, located at the root of your Delphi 6 installation directory. ============================================================ Copyright © 2001 Borland Software Corporation. All rights reserved.