It is... (not sure if it's the right way to do for your purpose)
You'll need to use a stream as an intermediate.
Something like this (with two functions to save and read a complete stringgrid to/from a BLOB-field):
procedure SaveStringGridToField(AGrid: TStringGrid; AField: TField);
var
AStream: TMemoryStream;
begin
AStream := TMemoryStream.Create;
try
AGrid.SaveToStream(AStream);
AStream.Position := 0;
TBlobField(AField).LoadFromStream(AStream);
finally
AStream.Free;
end;
end;
procedure LoadStringGridFromField(AGrid: TStringGrid; AField: TField);
var
AStream: TMemoryStream;
begin
AStream := TMemoryStream.Create;
try
TBlobField(AField).SaveToStream(AStream);
AStream.Position := 0;
AGrid.LoadFromStream(AStream);
finally
AStream.Free;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
SQLQuery1.Edit;
SaveStringGridToField(StringGrid1, SQLQuery1.FieldByName('BLOB'));
SQLQuery1.Post;
// and apply etc...
end;