如何利用DBImage控件显示显示access数据库中保存的照片信息?(在线,最好提供源代码) 如何利用DBImage控件显示显示access数据库中保存的照片信息,最好提供源代码? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果显示的是bmp图片,简单点来用:Image1.Picture.Bitmap.Assign(TBLOBField(Adoquery1photo['imgfield'])保存则:Adoquery1photo.SQL.Add('insert into Pic values(:Pic)');Adoquery1photo.Parameters.ParamByName('Pic').Assign(Image1.Picture.Bitmap);但是我不同意,用这个方法,应为这样数据库会很大,浏览的速度也是非常慢的我的建议是:存取图片的路径,可以把图片放在一个固定的路径下:比如当前路径下建立一个picture文件夹,很方便管理,速度也是非常快的。 粘的代码:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, DB, Grids, DBGrids, ADODB,Jpeg, XPMan,adoconed, Buttons;type TForm1 = class(TForm) ADOConnection1: TADOConnection; ADOTable1: TADOTable; DBGrid1: TDBGrid; DataSource1: TDataSource; Button1: TButton; Button2: TButton; OpenDialog1: TOpenDialog; Button3: TButton; SpeedButton1: TSpeedButton; XPManifest1: TXPManifest; Panel1: TPanel; Image1: TImage; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure DBGrid1DblClick(Sender: TObject); procedure Image1DblClick(Sender: TObject); procedure Button3Click(Sender: TObject); procedure SpeedButton1Click(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementationuses Unit2, Unit3;{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);begin OpenDialog1.Execute ; if Opendialog1.FileName <>'' then Image1.Picture.LoadFromFile(OpenDialog1.FileName);end;procedure TForm1.Button2Click(Sender: TObject);varJPG:TJPEGImage;MS:TMemoryStream;begin JPG:=TJPEGImage.Create; MS:=TMemoryStream.Create ; JPG.Assign(Image1.Picture.Graphic); JpG.SaveToStream(MS); MS.Position :=0; ADOTable1.Append ; TBlobField(ADOTable1.FieldByName('zp')).LoadFromStream(ms); ADOTable1.Post ; MS.Free ; jpg.Free ;end;procedure TForm1.DBGrid1DblClick(Sender: TObject);varJPG:TJPEGImage;MS:TMemoryStream;begin JPG:=TJPEGImage.Create ; MS:=TMemoryStream.Create ; TBlobField(ADOTable1.FieldByName('zp')).SaveToStream(ms); ms.Position :=0; JPG.LoadFromStream(ms); IMage1.Picture.Assign(JPG); Form2.Image1.Picture.Assign(JPG);end;procedure TForm1.Image1DblClick(Sender: TObject);begin form2.Show ; form2.Height :=Image1.Height ; form2.Width :=Image1.Width ;end;procedure TForm1.Button3Click(Sender: TObject);begin ADOTable1.Next ; DBGrid1DblClick(nil);end;procedure TForm1.SpeedButton1Click(Sender: TObject);begin form3.Show ;end;procedure TForm1.FormDestroy(Sender: TObject);begin ADOTable1.Close ;end;procedure TForm1.FormCreate(Sender: TObject);varSTR:String;MYList:TStringList;begin if FileExists('config.ini') Then begin Mylist:=TStringList.Create ; Mylist.LoadFromFile('config.ini'); Str:=Mylist.Text ; Adoconnection1.ConnectionString :=Str; Adoconnection1.Connected :=true;// Adodataset1.Active :=true; Adotable1.Active :=true; end else begin Mylist:=TStringlist.Create ; if EditConnectionString(ADOConnection1) then Try begin ADOConnection1.Connected :=true; if ADOConnection1.Connected then Str:=ADOConnection1.ConnectionString ; Mylist.Text :=Str; Mylist.SaveToFile('config.ini'); Adotable1.Active :=true; end except Application.Terminate ; end; end;end;end. 最好用access数据库保存路径,然后从路径中load过来 Image1.Picture.Bitmap.Assign(TBLOBField(Adoquery1photo.fieldbyname('imgfield')) 具備挑戰性的問題,喜歡挑戰的朋友進 怎么样在Delphi中获得NT(XP)的登录用户名? 说白了就是一个字符串的问题!请大家给出解决的方法!多谢了! 关于制作安装程序 关于RADIUS 在进销存中如何处理好录入和统计的关系?例如一条烟10包的问题 sql server 怎样屏蔽按键? 紧急问题: 在程序中打开控制面板中的“声音”页 那位大侠能帮我看一下这是怎么回事? 如何判断FORM中当前控件的类型
Image1.Picture.Bitmap.Assign(TBLOBField(Adoquery1photo['imgfield'])保存则:
Adoquery1photo.SQL.Add('insert into Pic values(:Pic)');
Adoquery1photo.Parameters.ParamByName('Pic').Assign(Image1.Picture.Bitmap);
但是我不同意,用这个方法,应为这样数据库会很大,浏览的速度也是非常慢的
我的建议是:存取图片的路径,可以把图片放在一个固定的路径下:比如当前路径下建立一个picture文件夹,很方便管理,速度也是非常快的。
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, DB, Grids, DBGrids, ADODB,Jpeg, XPMan,adoconed,
Buttons;type
TForm1 = class(TForm)
ADOConnection1: TADOConnection;
ADOTable1: TADOTable;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
Button1: TButton;
Button2: TButton;
OpenDialog1: TOpenDialog;
Button3: TButton;
SpeedButton1: TSpeedButton;
XPManifest1: TXPManifest;
Panel1: TPanel;
Image1: TImage;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure DBGrid1DblClick(Sender: TObject);
procedure Image1DblClick(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementationuses Unit2, Unit3;{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
OpenDialog1.Execute ;
if Opendialog1.FileName <>'' then
Image1.Picture.LoadFromFile(OpenDialog1.FileName);
end;procedure TForm1.Button2Click(Sender: TObject);
var
JPG:TJPEGImage;
MS:TMemoryStream;
begin
JPG:=TJPEGImage.Create;
MS:=TMemoryStream.Create ;
JPG.Assign(Image1.Picture.Graphic);
JpG.SaveToStream(MS);
MS.Position :=0;
ADOTable1.Append ;
TBlobField(ADOTable1.FieldByName('zp')).LoadFromStream(ms);
ADOTable1.Post ;
MS.Free ;
jpg.Free ;
end;procedure TForm1.DBGrid1DblClick(Sender: TObject);
var
JPG:TJPEGImage;
MS:TMemoryStream;
begin
JPG:=TJPEGImage.Create ;
MS:=TMemoryStream.Create ;
TBlobField(ADOTable1.FieldByName('zp')).SaveToStream(ms);
ms.Position :=0;
JPG.LoadFromStream(ms);
IMage1.Picture.Assign(JPG);
Form2.Image1.Picture.Assign(JPG);
end;procedure TForm1.Image1DblClick(Sender: TObject);
begin
form2.Show ;
form2.Height :=Image1.Height ;
form2.Width :=Image1.Width ;
end;procedure TForm1.Button3Click(Sender: TObject);
begin
ADOTable1.Next ;
DBGrid1DblClick(nil);
end;procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
form3.Show ;
end;procedure TForm1.FormDestroy(Sender: TObject);
begin
ADOTable1.Close ;
end;procedure TForm1.FormCreate(Sender: TObject);
var
STR:String;
MYList:TStringList;
begin
if FileExists('config.ini') Then
begin
Mylist:=TStringList.Create ;
Mylist.LoadFromFile('config.ini');
Str:=Mylist.Text ;
Adoconnection1.ConnectionString :=Str;
Adoconnection1.Connected :=true;
// Adodataset1.Active :=true;
Adotable1.Active :=true;
end
else begin
Mylist:=TStringlist.Create ;
if EditConnectionString(ADOConnection1) then
Try
begin
ADOConnection1.Connected :=true;
if ADOConnection1.Connected then
Str:=ADOConnection1.ConnectionString ;
Mylist.Text :=Str;
Mylist.SaveToFile('config.ini');
Adotable1.Active :=true;
end
except
Application.Terminate ;
end;
end;
end;end.