gpt4 book ai didi

delphi - 在数据集中存储 Delphi 集的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-03 14:56:36 26 4
gpt4 key购买 nike

标题几乎说明了一切。我使用 TClientDataset 来存储对象数组,其中一个对象具有定义为枚举类型集合的成员。据我了解,Delphi 集是位字段,其大小可以在 1 到 32 字节之间变化,具体取决于它们包含的数据量,并且 Delphi 没有定义 TSetField。我应该使用什么类型的字段来加载这个值?

最佳答案

您可以使用 TBytesField 或 TBlobField

ClientDataSet1MySet:TBytesField,大小=32

var
MySet: set of Byte;
Bytes: array of Byte;
begin
MySet := [1, 2, 4, 8, 16];

// Write
Assert(ClientDataSet1MySet.DataSize >= SizeOf(MySet), 'Data field is too small');

SetLength(Bytes, ClientDataSet1MySet.DataSize);
Move(MySet, Bytes[0], SizeOf(MySet));
ClientDataSet1.Edit;
ClientDataSet1MySet.SetData(@Bytes[0]);
ClientDataSet1.Post;

// Read
SetLength(Bytes, ClientDataSet1MySet.DataSize);
if ClientDataSet1MySet.GetData(@Bytes[0]) then
Move(Bytes[0], MySet, SizeOf(MySet))
else
MySet := []; // NULL
end;

关于delphi - 在数据集中存储 Delphi 集的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/347592/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com