HOME

  • µ¨ÆÄÀÌ 6 ¾÷µ¥ÀÌÆ® ÆÑ 2°¡ ³ª¿Ô½À´Ï´Ù.
¿£ÅÍÇÁ¶óÀÌÁî ¹öÀüÀÇ ¾÷µ¥ÀÌÆ®´Â ¾Æ·¡ÀÇ ¸µÅ©¿¡¼­ ¹ÞÀ¸½Ç ¼ö ÀÖ½À´Ï´Ù.

Download URL: ftp://ftpd.borland.com/download/delphi/devsupport/delphi6/D6_upd2_ent.exe

µî·ÏÇϽŠºÐµéÀº ¾Æ·¡ÀÇ ¸µÅ©¿¡¼­ ¹Þ¾Æ°¡¼¼¿ä.

http://www.borland.com/delphi/webreg/d6/d6_registeredusers.html

¾Æ·¡´Â ¿µ¹® ÀÔ´Ï´Ù.. ^^;

============================================================

Delphi 6
Update Pack 2
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, including previously installed release notes,
that accompany this product. We recommend that you read this
file in its entirety.

IMPORTANT:
Delphi 6 must be closed before installing this Update
Pack.


============================================================
CONTENTS

* ABOUT EDITING THE WINDOWS REGISTRY
* PRODUCT COEXISTENCE ISSUES
* WHAT'S NEW/GENERAL NOTES
* CHANGES AND MODIFICATIONS: SOAP
* CHANGES AND MODIFICATIONS:
WEB AND DISTRIBUTED APPLICATION DEVELOPMENT
* CHANGES AND MODIFICATIONS:
DATABASE DEVELOPMENT
* FILES INSTALLED BY THIS UPDATE PACK
* REMOVING THIS UPDATE
* OTHER DELPHI RELEASE NOTES
* RESOURCE NEWS
* HELP UPDATES


============================================================
ABOUT EDITING THE WINDOWS REGISTRY

Warning:
Registry edits are performed at your own risk.

Items in this document and in other parts of the
documentation that accompany this product may describe how
to edit your Windows registry. Windows provides a tool, the
Microsoft Registry Editor (regedit.exe), for this task.
Whatever tool you use, you should always back up your
registry before editing it, and thorougly familiarize
yourself with the editing tool and the registry editing
process. The registry is a critical component of your
operating system, and any mistakes you make while editing it
can cause your machine to stop functioning.


============================================================
PRODUCT COEXISTENCE ISSUES

Running Delphi 6 and C++Builder 6 on the same machine
------------------------------

This update pack is required for full Delphi functionality
if you have already installed (or plan to install)
C++Builder 6 on the same machine as Delphi 6. You can
install the Update Pack either before or after C++Builder.

Third-party and add-on package issues
------------------------------

Some third-party and add-on packages may generate errors
after installing Delphi 6 Update Pack 2. If you encounter
any such errors, uninstall the third-party package in Delphi
6 (Component| Install Packages, select the package, click
remove, and rebuild), and contact the third-party package
provider for an updated package. Related note: The
functionality previously available in InvWiz60.bpl, a free
add-on package installed by many Delphi 6 users, is
installed with this update. If you previously installed
InvWiz60, you should uninstall it to avoid conflicts with
the new built-in functionality.

Using the Web App Debugger in Delphi 6
after uninstalling C++Builder 6
------------------------------

If you install C++Builder 6 on a machine on which Delphi 6
is installed, then uninstall C++Builder 6, the Delphi 6 Web
App Debugger will no longer work as expected.

Solution: After uninstalling C++Builder 6, you can
reregister the Web App Debugger by running the following
from your Delphi6Bin directory:

1.   Run ServerInfo for the Web App Debugger:
    serverinfo

2.   Use the tregsvr utility to reregister the debugger
library:
    tregsvr weblib.tlb


============================================================
WHAT'S NEW/
GENERAL NOTES

In addition to 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 and
after the release of Update Pack 1. This update includes all
of the improvements provided in Update Pack 1; if you have
not yet installed Update Pack 1, you need only install
Update Pack 2 to bring your product up to date. Also note
that many of the improvements listed in this document were
also documented in the release notes that accompanied the
earlier update.

General improvements and modifications are summarized below.
Changes to SOAP and other specific areas are described in
separate sections later in this document. For additional
information on modifications and improvements to these and
other features, see the file D602FIXES.html (installed to
your Delphi6 root directory).

Installation note: If you encounter an "Error Copying Files
(Error -132)" during the early stage of installation of this
update, you must cancel the installation and close the
Borland Socket Server (scktsrvr.exe).

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.

TypeLib importer improvements
------------------------------

* In previous versions of Delphi 6, read-write was
suppressed in some string- and pointer-based types. That
suppression has been lifted, and those types now have
associated getter and setter procedures.

* All _TLB files now have an additional compiler switch
which enables property setter procedures to have a var
parameter {$VARPROPSETTER ON}. This change prevents the '
Property setters cannot take var parameters' error.

* Array properties are now correctly generated.

* The MS HTML library now compiles correctly.

Comparing variants
------------------------------

When comparing variants, you now need to be sure to test for
NULL values (like TField.IsNull, TParam.IsNull). This is
because magnitude comparisons (greater than, less than,
greater than or equal, or less than or equal) now generate
an EVariantInvalidOpError exception. NULLs have no defined
magnitude and cannot be compared in that way. This was not
the case in previous releases. Equality testing (equal and
not equal) still works as before. This refinement in
behavior affects both general variant usage and database
operations. For example, when working with Field values in a
database application, you now need to check if a value is
NULL before using it in a comparison.

Additionally, variants that are EMPTY or Unassigned can now
be used in many variant operations where they used to
generate exceptions. In comparison operations, they can be
tested for both equality and magnitude. In the case of
magnitude, they are considered less than any other type of
variant, with the exception of NULL (as explained above). In
other operations (add, subtract, multiply, not, and, or,
etc.), EMPTY can be used interchangeably with almost any
other variant type.


============================================================
CHANGES AND MODIFICATIONS:
SOAP

SOAP package configuration and deployment rights
------------------------------

Soap runtime and design-time functionality has been split.
The new runtime package is soaprtl60.bpl, and the original
package, dclsoap60.bpl, is now design-time only.

Important:
soaprtl60.bpl is a redistributable as defined in the
Borland License Terms.

Pro now supports Web Service client development
------------------------------

The Professional edition now supports SOAP client-side
development. Pro users now have a new WSDL Import wizard,
along with a new WebServices tab and its three components
which allow you to create client applications.

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.

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').

* All SOAP Runtime sources are included in the SourceSoap
directory.

* Safecall calling convention now works correctly: IOW, the
underlying HRESULT is checked and an exception raised if
necessary.

* The WSDL importer extracts additional information
(namespace and SOAPAction) allowing Delphi clients to use
the URL property of a THTTPRIO when invoking a non-Delphi
WebService. (In previous versions you could only use the
WSDLLocation for non-Delphi Services).

* You can configure Published members of a TRemotable-
derived class to be serialized as an attribute of the
node representing the class using the AS_ATTRIBUTE
qualifier:

ClassWithAttribute = class(TRemotable)
private
    FData: string;
    FAttribute: string;
published
property Data: string read FData write FData;
property Attribute:
    string read FAttribute write FAttribute stored
AS_ATTRIBUTE;
end;

* The registration logic of Invokable classes will assign
the class only to interfaces for which no other Invokable
class has been assigned yet. For example, if class C1
implements interface I1 and class C2 implements interface
I1 and I2. If C1 is registered before C2, it will not be
replaced by C2 for any request to interface I1.

* Several new Convert options have been added to
TSOAPConvertOption. See the HELP file for more
information. (NOTE: Some options may cause
incompatibilities when interacting with SP1 Services. For
example, MultiRef nodes are now rooted to the body node
as required by the spec. However, when interacting with a
application that has not been rebuilt with Update Pack 2,
you can turn off the 'soRootRefNodesToBody' option).

* The WSDL Importer and SOAP Serialization runtime now
handle document|literal services.

* You can now configure the logic used by the importer and
SOAP runtime to determine the 'return' parameter. See the
InvokeRegistry.RegisterParamNames method for more
information.

* SOAP Faults are now raised as an ERemotableException
(instead of plain Exception). This allows Client to
better handle SOAP faults.

* The serialization logic converting XML data to OleVariants
now utilizes an attribute to flag when the data should be
inserted in a array rather than directly into the
OleVariant. This was necessary in cases where only one
node of data is sent and should address problems seen
with SOAP/MIDAS.

* Problems encountered with serializing TRemotable-derived
classes that contain members of type TByteDynArray have
been fixed.

* TRIO (and descendant classes) and TSoapConnection expose
two events allowing one to intercept the XML packets sent
and received during a call to a WebService.

* At design time, the editor for the WSDLLocation field
property of a THTTPRIO object will display the last 10
WSDL locations that were successfully imported.

* The THTTPReqResp class, used by THTTPRIO, now provides
support for proxies. Likewise, the WSDL importer also
allows the WSDL document to be retrieved via a Proxy.

* Resetting the THTTPReqResp.URL will now disconnect any
previous connections and establish new connections with
the supplied URL. Previous versions ignored any new URL
once connected to a Service.

* 'Nan', 'INF' and '-INF' are now handled properly when
expecting a float value.

* Delphi Services correctly return status code 500 when an
Exception is raised. See 'soReturnSuccessForFault' for
more information on backward compatibility).

* More XML types are now recognized: For example,
'timeInstant', 'timeDuration', 'negativeInteger',
'nonNegativeInteger', 'nonPositiveInteger',
'positiveInteger', 'gDay', 'NCName'. Note that for
several of these types, no validation is performed,
specially the ones that map to a string (or Widestring).


============================================================
CHANGES AND MODIFICATIONS:
WEB AND DISTRIBUTED APPLICATION DEVELOPMENT

WebSnap package name change
------------------------------

Due to interface changes, the WebSnap runtime package name
has been changed to websnap61.bpl. If your IDE currently has
any of the WebSnap demo packages or third party components
installed, you should uninstall them or recompile them after
installing this update. If you don't, you may encounter
errors when starting the IDE.

If you are deploying your WebSnap application with runtime
packages, you must now deploy websnap61.bpl, and not
websnap60.bpl.

ISAPIThreadPool scalability improvements
------------------------------

ISAPIThreadPool.pas has been rewritten to resolve several
issues regarding scalability. The unit now has a
NumberOfThreads variable which represents the number of
threads allocated to the pool for processing connections
(default value is 25; maximum supported value is 64).
Additionally, this unit is intended for use with Microsoft
IIS servers only. It is designed to avoid interference with
the operation of other servers; if you are developing an
application for a non-Microsoft ISAPI server, however, and
you encounter any problems, you may want to remove this unit
from the uses clause of your .DPR.

WebConnection issue on Windows XP
------------------------------

If using WebConnection on Windows XP, you may encounter the
error "Method not allowed (405)" when attempting to get the
servername dropdown list. Solution: Set up a virtual path.
Steps:

1. Open your Computer Management Console. You can open the
  console in a number of ways, including running
  "compmgmt.msc" from a command prompt, opening Control
  Panel's Administrative Tools, or by right-clicking on
  "My Computer" and choosing Manage.

2. In the Computer Management Console, expand Services and
  Applications,  Internet Information Services, and Web
  Sites. Right-click Default Web Site, then choose
  New|Virtual Directory.

3. Follow the steps in the Virtual Directory Creation
  Wizard.

Web application notes
------------------------------

ActiveX and ComObj units are now included in the uses clause
of the project file when developing new Web applications. In
addition, the ComObj.CoInitFlags variable is set. It's
important to note that the addition of these units neither
initializes COM nor causes any additional COM overhead in
your Web applications. The references were added to allow
your application to better deal with any potential COM
threading issues should your application use COM. If you are
certain your application will not be using COM, however, you
can safely remove these two unit references and the variable
assignment from your project file.

Web App Debugger note
------------------------------

The default server URL for the Web App Debugger
(Tools|Web App Debugger, Start, select a listed Web App
server, click Go to open http://localhost:1024/null)
generates a "URL not found" error on versions of Netscape
earlier than 6.2. The error does not occur in Internet
Explorer.


============================================================
CHANGES AND MODIFICATIONS:
DATABASE DEVELOPMENT

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.45 support with a new
driver (dbexpmysql.dll).
To use the new driver, specify
   LibraryName = "dbexpmysql.dll"
in the Object Inspector or in dbxdrivers.ini.

* 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 8.1.7. BDE and ADO also support
Oracle 8.1.6. In all cases, the client version and server
version must be the same.

For details on these and other modifications to dbExpress,
see D602FIXES.html.

Oracle LONG and LONG RAW fields
------------------------------

When using Oracle, the size of LONG and LONG RAW fields
cannot be determined without fetching the whole field. So if
BLOB SIZE is set to -1, LONG and LONG RAW fields are
truncated to 64K. Recommendation: Set BLOB SIZE to your best
estimate of the blob size.

InterBase version support, Dialect 3 features
------------------------------

This update adds support for InterBase 6.0 and 6.5. The
client version and server version must be the same.

To use the new InterBase 6 or 6.5 Dialect 3 features, add an
entry to your Windows registry under
HKEY_LOCAL_MACHINESOFTWARE
    BorlandDatabase EngineSettings
    DriversIntrbaseDb OpenSQLDIALECT
and set the String Value to "3".

When an InterBase alias is created, the new entry will be
available in the .CFG file.

To use InterBase 5.6, SQLDIALECT can be set to "1" (existing
IB aliases which do not have the SQLDIALECT entry default to
SQLDIALECT=1 or to the registry setting when the SQLDIALECT
entry is added to the registry).


============================================================
OTHER DELPHI RELEASE NOTES

* README contains additional product notes and
documentation. If you previously installed Delphi Update
Pack 1, release notes for that update are installed as
README_61. This document, README_62, incorporates all
relevant information from the earlier update notes.

* 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 FilesBorlandDelphi6).

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 FilesCommon
FilesBorland SharedBde).

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.
0  COMMENTS