当前位置:首页 » 数据仓库 » delphi读取数据库图片
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

delphi读取数据库图片

发布时间: 2022-12-23 01:58:39

1. delphi 中 想读取数据库中多个图片以列表的形式显示出来,怎么实现啊。

读取数据库,可以用ADO控件;
然后用Image显示。就可以了。

网上可以搜到Demo。

2. delphi中,怎么从access数据库中读取图片

用delphi可以这样
procere TFrm_Ls_cx.TBut_RefreshClick(Sender: TObject);
var Picms:TMemoryStream;
Picjpg:TJPEGImage;
begin
if ADOQ_List.FieldByName('pct').AsVariant <>'' then
Begin
Picms:=TMemoryStream.Create ;
Picjpg:=TJPEGImage.Create ;
TBlobField(ADOQ_List.FieldByName('pct')).SaveToStream(Picms);
Picms.Position :=0;
Picjpg.LoadFromStream(Picms);
img_pic.Picture.Assign(Picjpg);
PicJpg.Free;
Picms.Free;
End;
End;

3. 在delphi中如何取出数据库中的图片显示在image上

unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls, DB, ADODB,jpeg, DBCtrls, Mask;type
TForm1 = class(TForm)
con1: TADOConnection;
qry1: TADOQuery;
img1: TImage;
btn1: TBitBtn;
btn2: TBitBtn;
OpenDialog1: TOpenDialog;
lbl1: TLabel;
edt1: TEdit;
lbl2: TLabel;
edt2: TEdit;
dbnvgr1: TDBNavigator;
ds1: TDataSource;
qry2: TADOQuery;
img2: TImage;
btn3: TBitBtn;
procere FormShow(Sender: TObject);
procere btn1Click(Sender: TObject);
procere btn2Click(Sender: TObject);
procere btn3Click(Sender: TObject);
procere dbnvgr1Click(Sender: TObject; Button: TNavigateBtn);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procere TForm1.btn1Click(Sender: TObject);
var
ms:TMemoryStream;
jpg:TJPEGImage;
begin
ms:=TMemoryStream.Create;
jpg:=TJPEGImage.Create;
jpg.Assign(img1.Picture.Graphic);
jpg.SaveToStream(ms);
ms.Position:=0;
qry1.SQL.Clear;
qry1.SQL.Add('Insert Into TIMG(PNAME,PINFO,PPHOTO) values(:pname,:pinfo,:pphoto)');
qry1.Parameters.ParamByName('pname').Value:=edt1.Text;
qry1.Parameters.ParamByName('pinfo').Value:=edt2.Text;
qry1.Parameters.ParamByName('pphoto').LoadFromStream(ms,ftBlob);
qry1.ExecSQL;
jpg.Free;
ms.Free;
end;procere TForm1.btn2Click(Sender: TObject);
begin
if OpenDialog1.Execute then
img1.Picture.LoadFromFile(OpenDialog1.FileName);
end;procere TForm1.btn3Click(Sender: TObject);
var
ms:TMemoryStream;
jpg:TJPEGImage;
begin
if not qry2.FieldByName('PPHOTO').IsNull then
begin
ms:=TMemoryStream.Create;
jpg:=TJPEGImage.Create;
TBlobField(qry2.FieldByName('PPHOTO')).SaveToStream(ms);
ms.Position:=0;
jpg.LoadFromStream(ms);
img2.Picture.Assign(jpg);
end;
end;procere TForm1.dbnvgr1Click(Sender: TObject; Button: TNavigateBtn);
begin
btn3.Click;
end;procere TForm1.FormShow(Sender: TObject);
begin
con1.Close;
con1.ConnectionString:='Driver=Firebird/Interbase(r) driver;UID=SYSDBA;PWD'+
'=123456;Dbname='+ExtractFilePath(Application.ExeName)+'IMG.FDB';
con1.LoginPrompt:=False;
con1.Connected:=True; qry2.Active:=True;
//img2.DataField:='PPHOTO';
end;end. 我用的是Firebird数据库,存放图片的字段名是PPHOTO,数据类型是BLOB,其他数据库应该也差不多。

4. delphi 如何显示数据库里的JPG图片文件

Image类型的字段。1、存文件入数据库
with
Query
do
begin
Close;
Sql.Clear;
Sql.Add('INSERT
INTO
Table
VALUE(:sFileName,:sFileContent)');
ParamByName('sFileName').AsString
OpenDialog.FileName;
ParamByName('sFileContent').LoadFromFile(OpenDialog.FileName,ftBlob);
ExecSQL;
end;2、从数据库中取出文件
with
Query
do
begin
Close;
Sql.Clear;
Sql.Add('SELECT
*
FROM
Table');
Open;
(FieldByName('sFileContent')
AS
TBlobField).SaveToFile
(FieldByName('sFileName').AsString);
end;

5. delphi通过image组件保存读取图片至数据库怎么写

var Stream:TMemoryStream;
begin
try
Stream := TMemoryStream.Create; // 创建内存流 Image1.Picture.Graphic.SaveToStream(Stream); // 将图片保存到内存流中
adoquery1.Close; adoquery1.SQL.Clear; adoQuery1.SQL.Add('Insert into test3 values (:id,:photo)'); ADOQuery1.Parameters.ParamByName('id').Value := editId.Text; adoQuery1.Parameters.ParamByName('photo').LoadFromStream(Stream,ftBlob); // 读取保存的内存图 adoquery1.ExecSQL;
finally
Stream.Free; // 释放内存流
end;
end;