在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