📄 delphi数据库应用程序中图像数据的存取技术.htm
字号:
<HTML><HEAD><TITLE>亦多EastDoor</TITLE>
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
<META content="MSHTML 5.00.2919.6307" name=GENERATOR><link rel="stylesheet" href="../eastdoor.css"></HEAD>
<BODY bgColor=#ffffff text=#000066 vLink=#e0e0e0>
<TABLE align=center border=0 borderColorLight=#90 cellPadding=0 cellSpacing=0
width=753>
<TBODY>
<TR align=middle>
<TD width=200 valign="top"><img src="../image/logo.gif" width="200" height="70"></TD>
<TD align=left height=56 vAlign=top width=603 colspan="2">
<div align="right">
<a href="http://202.113.29.120/">
<img src="../image/titlesoft.gif" height="72" border="0" alt="亦多下载中心"></a>
</div>
</TD>
</TR>
</TBODY>
</TABLE>
<div align="center"></div>
<TABLE align=center border=0 cellPadding=0 cellSpacing=1 width=755>
<TBODY>
<TR>
<TD align=middle height=292 vAlign=top width="100%">
<TABLE align=center border=0 cellPadding=0 cellSpacing=1
width="100%" bgcolor="#6699CC">
<TBODY>
<TR align=left bgcolor="#FFFFFF">
<TD colSpan=4 vAlign=top height=2>
<div align="left">
<table width="100%" border=" 0" cellspacing="1">
<tr bgcolor="#C1D6EA">
<td>
<div align="center">-=<font color="#FFFF33">-</font> 编程中心
<font color="#FFFF33">-</font>=-</div>
</td>
</tr>
</table>
</div>
</TD>
</TR>
<TR vAlign=middle bgcolor="#6699CC">
<TD colSpan=4 height="325">
<TABLE border=0 cellSpacing=0 height=100% width="100%" align="center">
<TBODY>
<TR vAlign=top>
<TD width="67%" rowspan="2" bgcolor="#FFFFFF">
<p align="center"><br><font size="3">Delphi数据库应用程序中图像数据的存取技术</font><br><span class="nava"><font color="#CC9933">2000-08-10·
-·安逸仙人时空</font></span></p><p> Delphi提供了数据访问(DataAccess)和数据控制(DataControls)的可视化控件,能够方便快捷地产生具有良好界面且功能强大的数据库应用程序。对于涉及图像数据(含Graphic字段)的数据库应用程序,如人事管理信息系统等,图像数据的存取技术是一个关键。然而,有关D
elphi下图象的存取,特别是图像的保存方面的技术各种资料上很少提及。下面,笔者结合一个简单的例子来说明。</p>
<p> </p>
<p> 一、图像数据的保存</p>
<p> 1.创建一个含有Graphic字段的数据库列表。</p>
<p> 在WindowsISQ(或Databasedesktop)下createdatabasemydb.gdb </p>
<p> createtablemyfrieds </p>
<p> (namevarchar(15)notnull,telephonevarchar(12),addressvarchar(30),zipvarchar(8),pictu
revarchar(15),imageblob);</p>
<p> 其中,picture字段用于保存图像的名称(包括路径),image(Graphic字符)则用于存储图像,其数据类型为“blob”。</p>
<p> </p>
<p> 2.建立窗体,设置窗体中各控件的属性。</p>
<p> 该窗体的主要功能是将某人信息进行编辑和保存。需要注意的图像保存所用的图像框必须用TImage而不能用TD BIm?age,编辑框宜用Tedit而不宜用TDBEdit,这一点与图像的读取恰好相反。</p>
<p> </p>
<p> 其中,各主要控件的属性设置如下:</p>
<p> </p>
<p> Datasource1.Dataset:Κtable1;</p>
<p> Table1.Databasename:Κmydb.gdb;</p>
<p> Table1.Tablename:Κmyfriends;</p>
<p> Table1.active:Κtrue;</p>
<p> 其他诸如Caption之类的属性设置不再叙述。</p>
<p> </p>
<p> 3.数据处理程序的建立。</p>
<p> </p>
<p> (1)图像(.bmp文件)打开的处理。</p>
<p> </p>
<p> procedureTForm1.pictopenbtnClick(Sender:TObject);</p>
<p> beginopendialog1.execute;</p>
<p> image1.picture.loadfromfile </p>
<p> (opendialog1.filename);</p>
<p> end;</p>
<p> (2)图像保存的处理。</p>
<p> </p>
<p> 图像保存的处理程序完成把在窗体1所编辑的信息包括图像保存到相应的数据库中,其关键是要定义一个Graph ic类型的变量且该变量要用assing()函数传递到相应数据库中保存。具体程序如下:</p>
<p> </p>
<p> procedureTform1.Savebtnclick(sender:TObject);</p>
<p> vargraphic1:TGraphic;</p>
<p> begingraphic1:ΚTGraphic.Create;</p>
<p> graphic1.loadfromfile(opendialog1.filename);</p>
<p> table1.insert;</p>
<p> table1.fieldbyname(′name′).asstring:Κedit1.text;</p>
<p> table1.fieldbyname(′telephon′).asstring:Κedit2.text;</p>
<p> table1.fieldbyname(′address′).asfloat:Κ(edit3.text);</p>
<p> table1.fieldbyname(′zip′).asfloat:Κ(edit4.text);</p>
<p> table1.fields[4].assign(graphic1);</p>
<p> table1.post;</p>
<p> graphic1.free;</p>
<p> end;</p>
<p> 二、图像数据的读取</p>
<p> 在数据库数据(包括Graphic字段的数据)的读取和浏览方面,Delphi这一具有强大代码自动生成功能的面向对象的开发工具的优越性得到淋漓尽致的体现。毫不夸张地说,不需要一条语句即可完成这一功能!</p>
<p> 建立窗体,设置各控件的属性。</p>
<p> Table1和Datasource1的属性的设置与数据的保存部分相同,所不同的是数据库数据的读取时用TD BEdit和TD?BImage控件而不用TEdit和TImage。控件TDBE
dit和TDBImage只要将datafield属性设置为其相对应的域;TDBNavigator的datasouce属性设置为datasource1即可。</p>
<p> </p>
</TD>
</TR>
<TR vAlign=top> </TR>
</TBODY>
</TABLE>
</TD>
</TR>
</TBODY>
</TABLE>
</TD>
</TR>
</TBODY>
</TABLE>
<TABLE align=center border=0 cellPadding=0 cellSpacing=1 width=755>
<TBODY>
<TR bgColor=#000000>
<TD align=middle colSpan=4 height=2 vAlign=top></TD>
</TR>
</TBODY>
</TABLE>
<script src="../footnote.js" class="Small" ></script>
</BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -