永发信息网

Delphi用ADOQuery将图片存入ACCESS,求一个示例。

答案:3  悬赏:50  手机版
解决时间 2021-02-20 14:05
Delphi用ADOQuery将图片存入ACCESS,求一个示例。
最佳答案
问题已解决(未加入异常处理语句)。
procedure TForm1.Button2Click(Sender: TObject);
var ms:TMemoryStream;
begin
if Image1.Picture.Graphic <>nil then begin
ms:=TMemoryStream.Create ;
Image1.Picture.Graphic.SaveToStream(ms);
ADOQuery1.Close;
ADOQuery1.SQL.Clear ;
ADOQuery1.SQL.Add('insert into test(id,photo) values(''atest'',:photo)');
ADOQuery1.Parameters.ParamByName('photo').LoadFromStream(ms,ftBlob);
ADOQuery1.execsql;
end;
end;
全部回答
应该是 fieldbyname('日期').asstring := datetimetostr(date()); sql.add('select * from dipbct where 日期=date() 这两句的原因 access 数据库对日期的查找应该加 # # 而且 datetimetostr(date()的格式与 where 日期=date() 的日期格式不同。 第一句换成 fieldbyname('日期').asstring := formatdatetime(‘yyyy-mm-dd’,date())好一些, 比较也采用 where 日期=#'+ formatdatetime(‘yyyy-mm-dd’,date()) +'#'
1、如何实现在Microsoft Access数据库中的图像存储: 这里是利用TStream的子类TMemoryStream向Microsoft Access数据库中存储图像的。 下面的这段代码是在按了“保存”按钮之后所触发的事件处理程序: procedure TForm1.Button1Click(Sender: TObject); Var MyJPEG : TJPEGImage; MS: TMemoryStream; Begin MyJPEG := TJPEGImage.Create; Try With MyJPEG do Begin Assign(Image.Picture.Graphic); MS:=TMemoryStream.create; SaveToStream(MS); MS.Position := 0; Table1.Edit; TBlobField(Table1.FieldbyName('Image')).LoadFromStream(MS); Table1.Post; Messagebox(Getactivewindow(), '图像保存完毕!', '保存', MB_OK); End; Finally MyJPEG.Free; End; End; 在这段代码里TStream的子类TMemoryStream利用内存流起到了将BMP格式转化为JPEG格式 的中间桥梁的作用。 2、如何将图像从Microsoft Access数据库中取出并显示出来: 下面的这段代码是在按了“查看图像”按钮之后所触发的事件处理程序: procedure TForm1.Button1Click(Sender: TObject); Var MyJPEG : TJPEGImage; MS : TMemoryStream; Begin Try MS := TMemoryStream.Create; TBlobField(Query1.FieldByName('Image')).SaveToStream(MS); MS.Position := 0; MyJPEG := TJPEGImage.Create; MyJPEG.LoadFromStream(MS); DBImage1.Picture.Bitmap.Assign(MyJPEG); //或是Sender.Picture.Assign(MyJPEG); Finally MS.Free; MyJPEG.Free; End; End; 这段代码的主要作用是:首先将查询结果中的JPEG图像格式数据保存到TMemoryStream中去, 然后设置数据指针在TMemoryStream中的位置为0;接着从TMemoryStream中读入相关数据, 并把它们赋给TDBImage.Picture.Bitmap,这样一来就实现了将数据库中所存储的JPEG格式的 数据转化为BMP格式,并在TDBImage中将图像显示出来。最后将TMemoryStream和TJPEGImage 这两个对象释放掉。特别要注意的是不能在设计阶段设置TDBImage的DataField属性,而只能 通过写代码的形式在运行阶段把利用流式数据所转化过来的新格式的图像数据赋给TDBImage.Picture.Bitmap。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
开瑞汽车瑞海通新民店在哪里啊,我有事要去这
请问下一月在职研究生可以考哪些专业啊?是不
我家主卧室是乳白色皮床,浅米色地砖,要配什
手机新浪微博怎么删除
怀孕讨厌我要了美女奥特曼美女
法国历史学家布罗代尔在《文明史纲》中指出,
大元泵业在哪里啊,我有事要去这个地方
西安有做小肉串的吗,在西安做会赚钱吗?
青岛哪里有卖大粒盐的
小宝护肤造型怎么去啊,有知道地址的么
中国电信阳光花苑营业厅地址在什么地方,想过
【那一年爸爸去世了】...的那一年爸爸去世问
AJ11和AJ13哪个更适合实战
今天军训坐了一个小时,起来之后膝盖很疼,一
目前为止最终幻想系列中哪一代主角最帅?
推荐资讯
会赚钱和会理财哪个更重要
现在的两相电表,比以前的老式电表转的特别快
营业执照上有“土方运输”请问我们可不可以开
有没有人和自己的表兄妹结婚?家里同意吗?如果
FAMILY52为民便利店我想知道这个在什么地方
兴义市封闭式小学有哪些?
80岁的老人腿打软吃什么钙片效果好?
东营广饶大王镇附近有租房子的吗 平房也可以
下列各句中,没有语病的一句是A. 他如果天天
祖训是什么意思
西工大考研哪个专业最好考的专业
求文言翻译,《仲尼梦奠帖》,《韭花帖》,《
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?