Delphi 2010 DataSnap封装COM对象

在Delphi 2010中,DataSnap已完全可以不使用COM了.想起在windows上配置COM,就麻烦的很,如果在本机还好说,在远程要涉及到权限等诸多问题(用SocketConnection要方便一些).

如果早期写的程序中有许多COM对象,我们可以通过DataSnap的封装,使用适配器模式简单地封装一下,那么在客户端就可以使用DataSnap的方式来调用远程的COM对象了,当然需要DataSnap Server来做中介.

不过需要注意:COM对象在调用上如果有字符串做参数,做字符串一般是WideString类型的,而在DataSanp中远程调用是不支持类型为WideString的参数作为返回值的(比如:procedure EchoString(var value:WideString);),不知道在以后的版本中会不会支持,所以如果有WideString类型的返回值在调用的时候要做String和WideString的转换.

附:

可作为参数的类型

TDBXWideStringValue

TDBXAnsiStringValue

TDBXInt16Value

TDBXInt32Value

TDBXInt64Value

TDBXSingleValue

TDBXDoubleValue

TDBXBcdValue

TDBXTimeValue

TDBXDateValue

TDBXTimeStampValue

TDBXBooleanValue

TDBXReaderValue

TDBXStreamValue

可作为var和out的参数的类型

boolean

SmallInt

Integer

Int64

Single

Double

AnsiString

String

TDBXTime

TDBXDate

可作为var和out的其他参数类型

TStream

TDataSet

TParams

TDBXReader

TDBXConnection