变量定义: varFDConnection: TFDConnection;qCustomers: TFDQuery; qOrders: TFDQuery;FDSchemaAdapter: TFDSchemaAdapter;FDStanStorageBinLink1: TFDStanStorageBinLink;... 服务端查询方法: TFDSchemaAdapter可以将多个关联的FIREDAC数据集(比如TFDQuery)序列为TSTREAM,当然适用于序列主从表数据. function T…
msgpack的数据序列和还原 msgpack不仅可以序列一些常规的数据类型的数据,比如:string.datetime.integer...... 还能序列olevariant.stream 这就非常强大而完美了. procedure TynTcpMethod.SendPicture(AReceiverID: string; APicture: TMemoryStream); var LMsgPack: TSimpleMsgPack; LStream: TMemoryStream; begin…
优秀的数据序列和还原类----TSimpleMsgPack TSimpleMsgPack是D10天地弦的作品. 优点:至简,就一个单元文件实现,不需要引用其他单元. 缺点:不是标准的MSGPACK实现,不能跨语言兼容. 所以:TSimpleMsgPack只能用于DELPHI开发,不能用于其他语言. 而QDAC的QMsgPack却是标准的MSGPACK实现,能跨语言兼容. 有了它,从此数据的序列和还原不再是梦魔. 适用极广:可以适用于所有版本的DELPHI,不论D7还是最新的XE10.1,都支持.…
cross socket和msgpack的数据序列和还原 procedure TForm1.Button1Click(Sender: TObject); begin var pack: TSimpleMsgPack := TSimpleMsgPack.Create; pack.ForcePathObject('sql').AsString := '测试'; IdTCPClient1.IOHandler.Write(tidbytes(pack.EncodeToBytes)); //发送TBytes…
使用流做中转 procedure CopyDataSet(const ASource, ADest: TFDAdaptedDataSet);var LStream: TStream;begin LStream := TMemoryStream.Create; try ASource.SaveToStream(LStream, TFDStorageFormat.sfBinary); LStream.Seek(0, TSeekOrigin.soBeginning); ADest.LoadFromSt…
DATASNAP数据序列之FIREDAC的TFDJSONDataSets DELPHI XE5开始增加了新的数据引擎——FIREDAC,它是跨平台的数据引擎,WINDOWS.LINUX.MAC.APP......都可以使用. 随之DATASNAP也增加了新的远程方法返回数据类型——TFDJSONDataSets. 顾名思义TFDJSONDataSets是数据集列表,是多个数据集的集合,DATASNAP通过它一次可以返回多个查询结果数据集. 服务端代码: function TServerMetho…
一.FireDAC调用DataSnap远程方法查询数据示例 1.服务端使用FDQUERY查询数据并返回TDATASET: function TServerMethods1.GetData(var sqlstr: string): TDataSet; var qry:TFDQurey; begin qry := TFDQuery.Create(nil); try qry.Connection := TServerContainer1.FDConnection1; qry.Open(sql); Re…
论DELPHI三层的数据序列格式的变化 要窥三层的数据序列格式,我们可以通过观察DELPHI官方的客户端内存表. 早先流行的是TClientDataSet,它的Data和Delta属性的数据类型都是:OleVariant. OleVariant其实是微软公司为COM和COM+战略定义的统一的数据序列格式. 早年DELPHI的三层架构就是建立在COM的基础之上的,数据序列自然也就使用OleVariant. 随着软件COM战略的失败,微软公司已经放弃COM战略,现在改为.NET战略了. DELPHI…
MSGPACK序列和还原TFDParams unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, qmsgpack, FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Par…
firedac二进制序列和JSON序列的对比 以同样大小的一个数据集的数据,作为测试的数据. 以JSON序列后的数据体积是4958字节. 以二进制序列后的数据体积是3044字节. 4958/3044=1.6287 粗略判断JSON序列后数据的体积是二进制的1.6. 还有XML序列,如果诸位有兴趣的话,大可自行测试一下. 但可以预料的是,体积肯定比二进制的要大.…