用delphi编程如何能将图片保存到Access数据库中?急!!!!!再现等待!!!!!!!

虚空无界 2004-08-20 05:52:13
编了一个小型人事管理系统,需要插入照片,需要将图片保存到数据库中,在delphi中怎样实现此功能?
...全文
219 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
DebugXP 2004-08-20
  • 打赏
  • 举报
回复
完整演示代码
http://www.delphibox.com/article.asp?articleid=340
rockswj 2004-08-20
  • 打赏
  • 举报
回复
转抄::::
//保存图片到数据库的话,下边可以考虑。。

//记得加上uses jpeg ;
//其中有些地方不是太严密,回去修改下。。
//delphi7+ sql2000通过.可以保存jpeg,jpg,bmp三种格式。

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, jpeg,DB, ADODB, ExtCtrls, Buttons, Grids, DBGrids,
DBCtrls;

type
TForm1 = class(TForm)
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
Button1: TButton;
OpenDialog1: TOpenDialog;
Edit1: TEdit;
Image1: TImage;
Image2: TImage;
BitBtn1: TBitBtn;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
ADOQuery1pic: TBlobField;
ADOQuery1borj: TStringField;
procedure Button1Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);

private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
s:string;
s1:string;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
bitmap1:tbitmap;
pjpg:tjpegimage;
pic:TMemoryStream;

begin
pjpg:=tjpegimage.Create;
if opendialog1.Execute
then
s:=opendialog1.FileName ;
s1:=extractfileext(s);

if (uppercase(s1) ='.JPG' ) or (uppercase(s1)='.JPEG') // 图片格式一定要大写
THEN
begin
pjpg.LoadFromFile(s );
pic:=TMemoryStream.Create;
pjpg.SaveToStream(pic);
image1.Picture.Bitmap.Assign(pjpg);

pic.Position:=0;
adoquery1.Insert ;
adoquery1.FieldByName('borj').VALUE := 2;
TBlobField(adoquery1.FieldByName('pic')).LoadFromStream(pic);
adoquery1.post;
pic.Free;
pjpg.free;
end ;

if (uppercase(s1)='.BMP') then

begin
edit1.Text :=uppercase(s1);

image1.Picture.LoadFromFile(s);
adoquery1.Insert ;
adoquery1.FieldByName('pic').Assign(image1.Picture.Graphic);
adoquery1.FieldByName('borj').VALUE := 3;

adoquery1.Post ;
end;
end;

procedure TForm1.BitBtn1Click(Sender: TObject);

var
jpeg:tjpegimage;
begin
image1.Picture.Graphic :=nil;
with adoquery1 do
begin
if adoquery1.FieldByName('borj').Value =3 // bmp
then
image2.Picture.Bitmap.Assign(fieldbyname('pic')) ;



if adoquery1.FieldByName('borj').Value =2 //jpge;

then
begin
jpeg:=tjpegimage.Create ;
try
jpeg.Assign(adoquery1.FieldByName('pic') );
image2.Picture.Graphic:=jpeg;
finally
jpeg.Free ;
end;
end;

end ;


end;

end.
kaguo 2004-08-20
  • 打赏
  • 举报
回复
用个dx数据控件dxDBGraphicEdit
dxDBGraphicEdit1.LoadFromFile('c:\aa.bmp');多种格式都好处理

2,507

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧