TQJson序列和还原clientdataset.data

TQJson是QDAC开源项目的JSON对象,其特点是跨平台,功能强大。

序列

procedure TForm2.Button2Click(Sender: TObject);
var
AJson: TQJson;
begin
AJson := TQJson.Create;
try
AJson.AsVariant := ClientDataSet1.Data;
if SaveDialog1.Execute then
AJson.SaveToFile(SaveDialog1.FileName, teUtf8, true);
finally
AJson.Free;
end;
end;

还原

procedure TForm2.Button3Click(Sender: TObject);
var
AJson: TQJson;
function Json2Bytes: TBytes;
var
I: Integer;
begin
SetLength(Result, AJson.Count);
for I := 0 to AJson.Count - 1 do
Result[I] := AJson[I].AsInteger;
end;

begin
AJson := TQJson.Create;
try
if OpenDialog1.Execute then
begin
AJson.LoadFromFile(OpenDialog1.FileName);
ClientDataSet1.Close;
ClientDataSet1.Data := Json2Bytes;
end;
finally
AJson.Free;
end;
end;

时间: 2025-01-18 10:31:52

TQJson序列和还原clientdataset.data的相关文章

TQMsgPack序列还原clientdataset.data

序列 procedure TForm1.Button2Click(Sender: TObject);var msgpack: TQMsgPack;begin msgpack := TQMsgPack.Create; try msgpack.AsVariant := cds.Data; if SaveDialog1.Execute then begin msgpack.SaveToFile(SaveDialog1.FileName); end; finally FreeAndNil(msgpack

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

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

有了它,从此数据的序列和还原不再是梦魔. 适用极广:可以适用于所有版本的DELPHI,不论D7还是最新的XE10.1,都支持.激动! 封装极简:完全独立的一个单元即可,不需引用任何其它的单元. 用法极简:调用非常简单. 其支持的序列的数据格式非常丰富. 下面列出该类的一些常用的接口方法: procedure LoadBinaryFromStream(pvStream: TStream; pvLen: cardinal = 0); procedure SaveBinaryToStream(pvSt

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

有时我们会把对象的序列叫做流化,这很形象.任何对象最终必须被序列成TBYTES,然后才能将它进行网络传输.序列,我们首先要想到三个对象:TOBJECT--TSTREAM--TBYTES.TSTREAM是序列和还原的中间桥梁.许多对象,某些数据集都提供了SAVETOSTREAM()和LOADFROMSTREAM().接下来道破天机:可以说对象流化是非常方便的,流转化为TBYTES也是非常容易的.具体的细节代码,可参考本人的博客上的相关系列文章.

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

// 定义结构体 typeTmyRec= recordname:string[10];password:string[10];end; function RawToBytes(const AValue; const ASize: Integer): TBytes;beginSetLength(Result, ASize);if ASize > 0 then beginMove(AValue, Result[0], ASize);end;end; procedure BytesToRaw(cons

firedac数据集的序列和还原

procedure TForm1.Button1Click(Sender: TObject);var stream, stream2: TMemoryStream; buf: TBytes;begin // 查询 FDQuery1.Close; FDQuery1.SQL.Clear;FDQuery1.Open('select * from t2'); // 序列为流 stream := TMemoryStream.Create; FDQuery1.SaveToStream(stream, TFD

结构体的序列和还原

// 定义结构体 type TmyRec= record name:string[10]; password:string[10]; end; function RawToBytes(const AValue; const ASize: Integer): TBytes;begin SetLength(Result, ASize); if ASize > 0 then begin Move(AValue, Result[0], ASize); end;end; procedure BytesTo

JsonDataObjects序列和还原

JsonDataObjects号称DELPHI最快的JSON库,且支持跨平台. // cxg 2017-9-12// Use JsonDataObjects(cross platform json library)// Use delphi 10.2.1 unit ujson; interface uses System.SysUtils, soap.EncdDecd, Web.HTTPApp, System.NetEncoding, Data.DB, System.Classes, JsonD

R序列seq

> seq(from=10,to=20,by=3) [1] 10 13 16 19 > seq(from=10,to=20,length=5) [1] 10.0 12.5 15.0 17.5 20.0 ## Default S3 method: seq(from = 1, to = 1, by = ((to - from)/(length.out - 1)), length.out = NULL, along.with = NULL, ...) seq.int(from, to, by, le