데이터 snap 전송 흐름/파일 문제

3377 단어 Data
Datasnap 서버에서 다음과 같은 메서드를 정의했습니다.
procedure UpdateDoc(ItemID : integer; doc : TStream);

클라이언트
AServerMethods_PublicClient := TServerMethods_PublicClient.Create(DM_Client.SQLConnection1.DBXConnection);

  ItemText := TMemoryStream.Create;

  try

    ItemText.LoadFromFile('E:\private\ksxt\Source\Client\Win32\Debug\blank.rtf');

    ItemText.Position := 0;

    ShowMessage('ItemText.Size := ' + IntToStr(ItemText.Size));



    AServerMethods_PublicClient.UpdateDoc(6, ItemText);

  finally

    ItemText.Free;

    AServerMethods_PublicClient.Free;

  end;

그러나 서버에서 수신한doc의 크기는 시종 -1로 흐르지 않습니다.이후 TJSONarray를 사용하여 변환할 수 있습니다.서버는 이렇게 씁니다.
procedure TServerMethods_Public.UpLoadFile(ADoc: TJSONArray);

var

  ADBXJSONTools : TDBXJSONTools;

  AData : TMemoryStream;

begin

  AData := TMemoryStream.Create;

  try

    AData := ADBXJSONTools.JSONToStream(ADoc) as TMemoryStream;

    ShowMessage(IntToStr(AData.Size));

    AData.SaveToFile('123.rtf');

  finally

    Adata.Free;

  end;

end;

클라이언트는 이렇게 씁니다.
ItemText.LoadFromFile('E:\private\ksxt\Source\Client\Win32\Debug\blank.rtf');

    ItemText.Position := 0;

    ShowMessage('ItemText.Size := ' + IntToStr(ItemText.Size));

    ADoc := ADBXJSONTools.StreamToJSON(ItemText, 0, ItemText.Size);

    AServerMethods_PublicClient.UpLoadFile(ADoc);

좋은 웹페이지 즐겨찾기