通过网盘分享的文件:PDF2DB-V3.rar
链接: https://pan.baidu.com/s/1exGp_QC1Das1TPAhnT0Q9A?pwd=44z2 提取码: 44z2
在Delphi中将JPG存入SQLite数据库
CREATE TABLE "Images" ( "ID" INTEGER PRIMARY KEY AUTOINCREMENT, "Filename" varchar(30) NOT NULL, "Description" memo, "Image" image)
procedure TForm4.Button1Click(Sender: TObject); var FileStream: TFileStream; //文件流 begin FileStream := TFileStream.Create('8.jpg', fmOpenReadWrite); FDQuery1.Close; FDQuery1.SQL.Text:=('Insert into Images values ( null,''aa.jpg'',''sss'', :photo)'); // 进行插入操作 FDQuery1.ParamByName('photo').LoadFromStream(FileStream,ftBlob); FDquery1.ExecSQL; FileStream.Free; end;
从image1导进 入 数据库
var Stream:TMemoryStream; //内存流 begin Stream := TMemoryStream.Create; // 创建内存流 Image1.Picture.Graphic.SaveToStream(Stream); // 将图片保存到内存流中 FDquery1.Close; FDQuery1.SQL.Text:=('Insert into Images values ( null,''aa.jpg'',''sss'', :photo)'); // 进行插入操作 FDQuery1.ParamByName('photo').LoadFromStream(Stream,ftBlob); // 读取保存的内存图 FDquery1.ExecSQL; Stream.Free; // 释放内存流 end;
从SQLite数据库 导出到本地文件
var FileStream: TFileStream; BlobStream: TStream; //数据库 Blob流 begin FDquery1.Open('select * from Images where id='+ edit1.Text+''); if not FDQuery1.IsEmpty then begin BlobStream := FDQuery1.CreateBlobStream(FDQuery1.FieldByName('Image'), bmRead); // 获取BLOB流 BlobStream.Position := 0; // 确保流位置在开头 FileStream := TFileStream.Create('aa.mp3', fmCreate); // 创建文件流 ,从数据库 导出到本地文件 FileStream.CopyFrom(BlobStream, BlobStream.Size); FileStream.Free; BlobStream.Free; end else begin ShowMessage('未找到指定ID的Jepg文档'); end; end;
从数据库导出到image
var BlobStream: TStream; //数据库 Blob流 begin FDquery1.Open('select * from Images where id=101 '); if not Query.IsEmpty then begin BlobStream := FDQuery1.CreateBlobStream(FDQuery1.FieldByName('Image'), bmRead); // 获取BLOB流 BlobStream.Position := 0; // 确保流位置在开头 Image1.Picture.LoadFromStream(BlobStream); //将 流数据 导入到 Image1 BlobStream.Free; end else begin ShowMessage('未找到指定ID的Jepg文档'); end; end;
简单点,可以用DBImage1
代替Image1
更新图像到数据库
var FileStream: TFileStream; begin FileStream := TFileStream.Create('9.jpg', fmOpenReadWrite); adoquery1.Close; adoQuery1.SQL.Text:='UPDATE Images SET image = :photo WHERE ID = 1'; // 进行插入操作 adoQuery1.ParamByName('photo').LoadFromStream(FileStream,ftBlob); adoquery1.ExecSQL; FileStream.Free; FDQuery1.Refresh; end;