TynSerial序列(还原)TClientDataSet

Posted hnxxcxg

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TynSerial序列(还原)TClientDataSet相关的知识,希望对你有一定的参考价值。

TynSerial序列(还原)TClientDataSet

可以一次性序列(还原)多个TClientDataSet。

1)TClientDataSet查询数据

procedure TForm1.Qrys(accountno, sql, sql2: string; DataSet, DataSet2: TClientDataSet);
// TClientDataSet主从表查询
var
  url: SockString;
  i: integer;
  serial: TynSerial;
begin
  serial := TynSerial.Create;
  try
    url := ‘querys2‘;
    serial.WriteString(‘accountno‘, accountno);   // 帐套号
    serial.WriteString(‘sql‘, sql);               // 查询SQL
    serial.WriteString(‘sql2‘, sql2);
    i := FHttp.Post(url, serial.Text, FDataType);   // http post
    if i = 200 then
    begin
      serial.Text := FHttp.Content;
      serial.ReadClientDataSet(‘dataset‘, DataSet);   // 还原一
      serial.ReadClientDataSet(‘dataset2‘, DataSet2); // 还原二
    end
    else
      ShowMessage(IntToStr(i) + ‘ error‘);
  finally
    serial.Free;
  end;
end;

2)TClientDataSet提交数据

function TForm1.Save(accountno, tablename: string; dataset: TClientDataSet): string;
// clientDataSet提交
var
  url: SockString;
  i: Integer;
  serial: TynSerial;
begin
  serial := TynSerial.Create;
  try
    url := ‘save‘;
    serial.WriteString(‘accountno‘, accountno);
    serial.WriteString(‘tablename‘, tablename);
    serial.WriteDelta(‘delta‘, dataset);
    i := FHttp.Post(url, serial.Text, FDataType);
    if i = 200 then
    begin
      serial.Text := FHttp.Content;
      if serial.ReadBool(‘result‘) then
        dataset.MergeChangeLog;
    end
    else
      ShowMessage(i.ToString + ‘ error‘);
  finally
    serial.Free;
  end;
end;

  

  

以上是关于TynSerial序列(还原)TClientDataSet的主要内容,如果未能解决你的问题,请参考以下文章

关于数据(对象)的序列和还原

JsonDataObjects序列和还原

优秀的数据序列和还原类----TSimpleMsgPack

带有function的JSON对象的序列化与还原

结构体的序列和还原(使用Move方法)

带有function的JSON对象的序列化与还原