當前位置:首頁 » 數據倉庫 » 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;