C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
분야별 포럼
C++빌더
델파이
파이어몽키
C/C++
프리파스칼
파이어버드
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

헤드라인 뉴스
[71] 볼랜드, Delphi 6 Update 2 공개
박지훈.임프 [cbuilder] 15235 읽음    2002-02-20 23:20
볼랜드에서 Delphi6의 업데이트 2를 공개했습니다. 정품 사용자 등록을 하신 분은 볼랜드의 아래의 링크에서 바로 다운로드가 가능합니다. 설치 전에 반드시 아래의 내용을 자세히 읽어보시길 바랍니다.
다운로드 : http://www.borland.com/delphi/webreg/d6/d6_registeredusers.html

이번의 Delphi 6 업데이트2는 이전의 업데이트1의 모든 수정된 부분을 반영하고 있으므로 업데이트1을 설치할 필요 없이 바로 업데이트2를 설치하면 됩니다. 무려 711개나 되는 파일이 업데이트되거나 추가됩니다.

Delphi 6 업데이트2는 백업 없이 기존의 파일들을 덮어쓰므로 언인스톨이 안됩니다. 그런데 업데이트2를 설치한 후에는 서드파티 컴퍼넌트 패키지의 일부가 오동작 할 수 있다고 합니다. 오동작하는 서드파티 컴퍼넌트 패키지가 있을 경우, 해당 패키지의 공급사에서 업데이트를 내놓을 때까지는 다른 방법이 없습니다.

그러므로 언인스톨 전으로 돌아가야 할 경우가 생길 수 있습니다. 이 경우에는 Delphi 6 인스톨 CD에서 직접 파일들을 복사해서 덮어쓰는 수밖에 없습니다. 그런데, 이 경우에도, Delphi32.exe 파일은 복원할 방법이 없습니다. 그러므로 현재 프로젝트에 중요한 서드파티 컴퍼넌트를 쓰고 있는 경우라면 최소한 Delphi32.exe 파일은 백업해놓고 설치를 시작해야 합니다.

얼마전에 자유게시판에서도 한번 언급했듯이, Delphi 6의 일부 런타임 패키지들이 더 최신인 C++Builder 6의 런타임 패키지와 달라서 C++Builder 6를 설치하고 나면 Delphi 6가 오동작했었습니다. 이번 업데이트에서는 이런 Delphi 6의 런타임 패키지를 C++Builder 6에 맞추어 두 제품이 한 시스템에서 동시에 동작할 수 있도록 하였습니다.

또한 이런 수정에 따라, C++Builder 6에서와 같이 Invokable Wizard가 기본으로 설치되어 있으며 웹서비스 서버를 만들기 위해 SOAP Server Application을 생성하면 자동으로 Invokable Wizard가 실행됩니다. (Invokable Wizard 항목의 이름이 SOAP Server Interface로 바뀌었으니 혼동 없으시길 바랍니다.)

그런데, 업데이트 2가 공개되기 전에 등록된 사용자들에게 배포했던 Invokable Wizard는 InvWiz60.bpl 파일이었는데, 업데이트2를 깔고 나면 델파이의 기본 패키지 dclsoap60.bpl 파일에 포함되게 됩니다. 덕분에 이전에 InvWiz60.bpl을 설치했던 경우 업데이트 2를 깔고 나면 실행시 패키지 에러가 나게 됩니다. Delphi 6 실행 후 이 InvWiz60.bpl 파일을 델파이에서 제거해야 합니다. (혹은 처음 실행했을 때 에러가 나면 No를 선택해도 되죠.)

델파이6와 C++Builder 6를 한 시스템에 설치했다가 C++Builder 6를 언인스톨하면 Web App Debugger가 제대로 동작하지 않습니다. 이때는 다음과 같이 하여 Web App Debugger를 강제로 설치해줘야 합니다.
- ServerInfo.exe를 실행시킵니다.
- 다음과 같이 디버거를 다시 설치합니다. "tregsvr weblib.tlb"

업데이트2를 설치중에, "Error Copying Files (Error -132)"라는 에러가 발생하면 scktsrvr.exe를 중지시키고 다시 설치하라고 하는군요.

Delphi 6에서 그밖에 수정된 점들의 리스트를 모두 번역해서 올려드리고 싶었는데...
너무 많아서... 그냥 영문을 올려드립니다.

WHAT'S NEW/
GENERAL NOTES


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 Source\Soap
  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.

* The new Informix driver (dbexpinf.dll) has been tested
  with Informix version 9.2.1.

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

Informix BLOB/CLOB fields
------------------------------

A new global variable, InformixLob, is available to allow
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 performs special query generation when
resolving Oracle BLOB/CLOB fields, but not when resolving
Informix BLOB/CLOBs. To address this issue, set InformixLob
to True when using Informix BLOB/CLOBs, and switch it back
to False (the default) when using Oracle BLOB/CLOBs.

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_MACHINE\SOFTWARE\
     Borland\Database Engine\Settings
     \Drivers\Intrbase\Db Open\SQLDIALECT
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).





+ -
이전글:  
다음글:  
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.