I looking for this topic about 3 hour , and I collect what I found for next refer and share it with you
I hope you like it
1- we have a virtual table on screen and fill it
2- to save in a stream we can use
Code: Select all
Var
NN,K :TMemoryStream;
procedure TForm1.Button1Click(Sender: TObject);
begin
NN:=TMemoryStream.Create;
VirtualTable1.SaveToStream(NN,True,True);
Code: Select all
begin
MSTable1.Insert;
TBlobField(MSTable1.FieldByName('a')).LoadFromStream(NN);
MSTable1.Post;
Code: Select all
function MemoryStreamToString(M: TMemoryStream): string;
begin
SetString(Result, PChar(M.Memory), M.Size div SizeOf(Char));
end;
var
S : TStringList;
begin
S:=TStringList.Create;
S.Add('');
S[0]:=MemoryStreamToString(NN);
MSTable1.Insert;
MSTable1.FieldByName('a').AsString:=S[0];
MSTable1.Post;
Code: Select all
K:=TMemoryStream.Create;
TBlobField(MSTable1.FieldByName('a')).SaveToStream(K);
VirtualTable2.LoadFromStream(K,True,False);
VirtualTable2.Active:=True;