假设数据库中有表test,两个字段id和image,id是主键
Cell1是要保存的Cell,Cell2用来显示从数据库提取出来的Cell
把query1的requestlive设置为true
保存:
procedure TForm1.Button1Click(Sender: TObject);
var
temp: TBlobStream;
MStream: TMemoryStream;
begin
Query1.Close;
Query1.SQL.Text:='select * from test';
Query1.Open;
Query1.Insert;
Query1.FieldByName('id').AsInteger:=1;
temp:=TBlobStream.Create(TBlobField(Query1.FieldByName('image')),bmWrite);
MStream:=TMemoryStream.Create;
Cell1.DoSaveFile('d:\ss.dat');
MStream.LoadFromFile('d:\ss.dat');
MStream.SaveToStream(temp);
Query1.Post;
end;
提取
procedure TForm1.Button2Click(Sender: TObject);
var
temp: TBlobStream;
MStream: TMemoryStream;
begin
Query1.Close;
Query1.SQL.Text:='select * from test where id=1';
Query1.Open;
Query1.Edit;
temp:=TBlobStream.Create(TBlobField(Query1.FieldByName('image')),bmRead);
MStream:=TMemoryStream.Create;
MStream.LoadFromStream(temp);
MStream.SaveToFile('d:\ss2.dat');
Cell2.DoOpenFile('d:\ss2.dat');
end;