Delphi7とRemObjectsSDKで構築されたクライアントサーバーアプリケーションがあります。クライアントとサーバー間のメッセージはバイナリです(http://wiki.remobjects.com/wiki/BinMessage)。私の質問は次のとおりです。1)TDataSet / TDataSourceをデータで入力し、それらをクライアントからサーバーに送信した場合、サーバーコンポーネントのDataSetにデータが含まれますか?データは永続的なままである必要がありますか?2)TROBinaryMemoryStreamの子孫クラスにカプセル化されたRemObjectsを介してコンポーネントを送信しようとしましたが、成功しませんでした
クラス定義
TRODataSource=class(TROBinaryMemoryStream)
private
FNameDS:String;
FDS:TDataSource;
procedure SetName(aValue:String);
procedure SetDS(aValue:TDataSource);
public
published
property Name:String read FNameDS write SetName;
property DataSource:TDataSource read FDS write SetDS;
end;
データソースを送信するメソッド
function foo(aDataSource: TDataSource):integer;
var
wStream:TRODataSource;
begin
wStream:=TRODataSource.Create;
wStream.Name:='TEST';
wStream.DataSource:=aDataSource;
try
Result:=(RORemoteService as ISvc..).foo1(wstream);//method existing on the server will //return how many records are in the dataset
finally
freeandnil(wstream);
end;
end;
どんな答えも高く評価されます。
LE:TROComplexTypeの子孫クラスのみをシリアル化できるようですhttp://wiki.remobjects.com/wiki/Remote_Object_Allocation_and_Serialization。しかし、ストリーム上のコンポーネントをシリアル化できないかどうかはわかりません。