程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> datasnap傳輸流/文件問題

datasnap傳輸流/文件問題

編輯:Delphi

我在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的size始終為-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);

 

摘自 編碼筆記

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved