在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