델파이 7과 RemObjects SDK에 클라이언트 - 서버 애플리케이션이 내장되어 있습니다. 클라이언트와 서버 간의 메시지는 2 진수입니다 (http://wiki.remobjects.com/wiki/BinMessage). 내 질문은 : 1) TDataSet/TDataSource 데이터를 채우고 클라이언트에서 서버로 보낸 경우 서버 구성 요소의 DataSet에 데이터가 포함됩니까? 데이터는 지속적으로 유지되어야합니까? 2)는 TROBinaryMemoryStream 자손 클래스에서 캡슐화 된 RemObjects에를 통해 구성 요소를 보내려고하지만, 한델파이 7 remobjects - 구성 요소를 serialize하십시오.
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;
어떤 데이터 소스를 보내 succes에
클래스 정의
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;
방법이없는 대답은 평가 절하 될 것이다.
LE : TROComplexType의 하위 클래스 만 직렬화 할 수 있습니다. http://wiki.remobjects.com/wiki/Remote_Object_Allocation_and_Serialization. 하지만 스트림에서 구성 요소를 serialize 할 수 없는지 확실하지 않습니다. (델파이 .DFM 파일을하는 것처럼) TComponent의/TPersistent의 직렬화를 들어
TDataSet을 직렬화하는 대신 일반 데이터를 직렬화하는 것이 훨씬 쉬울 수도 있습니다. – mjn
예, 알고 있습니다. 일종의 프레임 워크를 구축하기 위해 데이터 소스/데이터 집합을 직렬화하려고했지만 예상했던 것보다 어렵습니다. – RBA