QMsgPack-TClientDataSet内容直接保存到MessagePack数据流

QMsgPack支持AsVariant方法,而TClientDataSet提供了一个Data属性的Variant类型变量直接传递数据集内容,由此,我们可以方便的建立两者之间的关系。

【提示】

在Delphi的早期版本中,Data这个Variant类型的值内部使用的是AnsiString来存贮的字节流,但我并不确定Delphi从什么时候开始,将其改为了Byte数组类型,你可以通过VarType函数来检测它的类型,但QMsgPack做为一个更底层的实现,不适合做这种检测。

1、将数据集的Data保存到MessagePack协议数据流或文件:

2、从MessagePack协议数据流或文件中加载到数据集

对于早期的版本,我们需要做一个转换:

1、从AnsiString转换为TBytes,然后再赋给AMsgPack。

2、加载时反过来将字节流反转成AnsiString

 

分享到:

3 条评论

沙发空缺中,还不快抢~