一个简单的DEMO,适用于大多数文件保存到数据库或从数据库中取出:
procedure TForm1.Button1Click(Sender: TObject);
begin //-----这是从文件到数据库
with DataModule1.ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('insert into Tab(name,files) values
aa,:bb)');
Parameters.ParamByName('aa').Value:=Edit1.Text;
Parameters.ParamByName('bb').LoadFromFile('C:/a.jpg',ftVarBytes);//指定文件来源路径
ExecSQL;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var aStream:TADOBlobStream;
begin //----------这是从数据库到文件
with DataModule1.ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('select * from tab where name=:aa');
Parameters.ParamByName('aa').Value:=Edit1.Text;
Open;
end;
ShowMessage('查找到:'+inttostr( DataModule1.ADOQuery1.RecordCount)+'条记录!');
if not DataModule1.ADOQuery1.IsEmpty then
begin
aStream:= TADOBlobStream.Create(DataModule1.ADOQuery1.FieldByName('files') as TBlobField, bmRead);
aStream.Position:=0;
aStream.SaveToFile('C:/b.jpg'); //指定文件保存路径
aStream.Free;
end;
end;