1、将JPG文件存入数据库
procedure TForm1.jpgsave(wj:string);
var bmp:tbitmap;jpg:TJPEGImage;ms:tmemorystream;
begin
Image1.Picture.LoadFromFile(wj);
jpg:=TJPEGImage.Create;
Jpg.Assign(Image1.Picture);
ms:=Tmemorystream.Create;
Jpg.SaveToStream(MS);
with Clientdataset1 do
begin
if active then close;
commandtext:='select phot from table1';
open;
edit;
TBlobfield(cds.fieldbyname('phot')).LoadFromStream(ms);
post;
ApplyUpdates(0);
end;
end;
2、将JPG文件从数据库读出显示
procedure jpgread(wj:string);
var ms:TMemoryStream;jpg:TJPEGimage;
begin
Jpg := TJPEGImage.Create;
MS := TMemoryStream.Create;
with Clientdataset1 do
begin
if active then close;
commandtext:='select phot from table1';
open;
TBLobfield(fieldbyname('phot')).SaveToStream(MS);
MS.Seek(0, soFromBeginning);
with Jpg do
begin
PixelFormat := jf24Bit;
Scale := jsFullSize;
Grayscale := False;
Performance := jpBestQuality;
ProgressiveDisplay := True;
ProgressiveEncoding := True;
LoadFromStream(MS);
end;
Image1.Picture.Assign(Jpg);
end;
end;
3、通过参数传递进行存储
procedure TUniFrame1.UniBitBtn3Click(Sender: TObject);
//图片保存数据库
begin
UniQuery2.Close;
UniQuery2.SQL.Clear;
mySql:='update paper_info set user_image=:p1 where rowid=:p2';
UniQuery2.SQL.Add(mySql);
UniQuery2.ParamByName('p1').LoadFromFile(destFile,ftBlob);//保存图片到数据库
UniQuery2.ParamByName('p2').Value:=rowId;
UniQuery2.ExecSQL;
if UniQuery2.RowsAffected>0 then
begin
ShowMessageN('图片写入数据库成功!');
UniQuery1.Refresh;
end
else
begin
ShowMessageN('图片写入数据库失败!'); //刷新查询结果以展示图片
end;
end;