The title pretty much says it all. I\'m using a TClientDataset to store an array of objects, and one of the objects has a member defined as a set of an enumerat
You could use a TBytesField or a TBlobField
ClientDataSet1MySet: TBytesField, Size=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;