如何把图像文件存入数据库,又如何读出并显示在IMAGE控件??
解决方案 »
- 在一页录入很多的抄表数据使用哪一个控件比较方便?
- 【求助】哪位兄弟有没有开发过能服务ISAPI的web服务器?该如何实现(给个思路或用什么控件~~??)
- 工作难找,心情不好,坛子开了,专家会丢了,收藏夹空了散100
- 谁用过TIdCoderMD5,这个关于加密的应用??
- 如何判 webbrowser.navigate('http://www.AAAAA.com') 已更新完毕,?,待更新完毕后执行其他代码语句webbrowser.navigate('http://www.A
- 救命,如何屏蔽pdf保存功能
- 介绍一下关于Windows编程的书籍?最好是消息处理的书,感觉自己水平继续提高啊。UP有分
- 如何拦截桌面刷新消息?
- fengerfeifei(风儿飞飞)在哪?
- 想搞软件开发这么难!?
- 急招Delphi+oracle软件开发人员!
- 那位仁兄可以指点一下:gpio是什么东西,老板说是主板上的东西,,
//从数据库中读出cad文件,bmp就更容易,得到后直接用image即可显示
var s : TMemoryStream;
begin
with ADOQuery1 do begin
Close;
SQL.Clear;
SQL.Add('select filedwg from drawdwg where tabno = :no');
Parameters.ParamByName('no').Value := Edit1.Text;
Open;
if RecordCount = 0 then begin
showmessage('no find result !');
Exit;
end;
end;
deletefile('c:\temp.dwg');
s := TADOBlobStream.Create(TBlobField(ADOQuery1.FieldByName('filedwg')),bmRead);
s.SaveToFile('c:\temp.dwg');
s.Free;
end;
本人刚接触DEPHI,你能否告知我怎样把图像文件存入数据库呢?
Delphi提供了数据访问(DataAccess)和数据控制(
DataControls)的可视化控件,能够方便快捷地产生具有
良好界面且功能强大的数据库应用程序。对于涉及图像数
据(含Graphic字段)的数据库应用程序,如人事管理信
息系统等,图像数据的存取技术是一个关键。然而,有关D
elphi下图象的存取,特别是图像的保存方面的技术各种
资料上很少提及。下面,笔者结合一个简单的例子来说明
。 一、图像数据的保存 1.创建一个含有Graphic字段的数据库列表。 在WindowsISQ(或Databasedesktop)下createdatab
asemydb.gdb createtablemyfrieds (namevarchar(15)notnull,telephonevarchar(
12),addressvarchar(30),zipvarchar(8),pictu
revarchar(15),imageblob); 其中,picture字段用于保存图像的名称(包括路径
),image(Graphic字符)则用于存储图像,其数据类型
为“blob”。 2.建立窗体(如图1所示),设置窗体中各控件的属
性。 该窗体的主要功能是将某人信息进行编辑和保存。需
要注意的图像保存所用的图像框必须用TImage而不能用TD
BImage,编辑框宜用Tedit而不宜用TDBEdit,这一点与
图像的读取恰好相反。 其中,各主要控件的属性设置如下: Datasource1.Dataset:Κtable1; Table1.Databasename:Κmydb.gdb; Table1.Tablename:Κmyfriends; Table1.active:Κtrue; 其他诸如Caption之类的属性设置不再叙述。 3.数据处理程序的建立。 (1)图像( .bmp文件)打开的处理。 procedureTForm1.pictopenbtnClick(Sender:TOb
ject); beginopendialog1.execute; image1.picture.loadfromfile (opendialog1.filename); end; (2)图像保存的处理。 图像保存的处理程序完成把在窗体1所编辑的信息包
括图像保存到相应的数据库中,其关键是要定义一个Graph
ic类型的变量且该变量要用assing()函数传递到相应数
据库中保存。具体程序如下: procedureTform1.Savebtnclick(sender:TObject
); vargraphic1:TGraphic; begingraphic1:ΚTGraphic.Create; graphic1.loadfromfile(opendialog1.filename
); table1.insert; table1.fieldbyname(′name′).asstring:Κe
dit1.text; table1.fieldbyname(′telephon′).asstring
:Κedit2.text; table1.fieldbyname(′address′).asfloat:
Κ(edit3.text); table1.fieldbyname(′zip′).asfloat:Κ(e
dit4.text); table1.fields[4].assign(graphic1); table1.post; graphic1.free; end; 二、图像数据的读取 在数据库数据(包括Graphic字段的数据)的读取和
浏览方面,Delphi这一具有强大代码自动生成功能的面向
对象的开发工具的优越性得到淋漓尽致的体现。毫不夸张
地说,不需要一条语句即可完成这一功能! 建立窗体(如下图所示),设置各控件的属性。 图中Table1和Datasource1的属性的设置与数据的保
存部分(图1)相同,所不同的是数据库数据的读取时用TD
BEdit和TDBImage控件而不用TEdit和TImage。控件TDBE
dit和TDBImage只要将datafield属性设置为其相对应的域
;TDBNavigator的datasouce属性设置为datasource1即可
。
http://www.csdn.net/expert/topic/973/973247.xml?temp=.441189