| | | | | | | [文章信息] | | | 作者: | 李明亮 罗明莉 | | 时间: | 2003-09-29 | | 出处: | yesky | | 责任编辑: | 方舟 | |
| [文章导读] | | | 本文通过一个完整的简单例子来说明如何保存和显示SQL数据库中的图像数据 | |
| |
|
| | | |
|
|
|
|
|
对于涉及图像数据的数据库应用程序,图像数据的存取技术是一个关键。由于缺少技术文档及DEMO例程演示,为此笔者在网上搜索了相关资料,有的根本不能用,有的过于繁杂,有的应用范围太窄(如只能适用于BMP图像),有的写得过于简单理解起来十分困难。。。而且在网上这也是大家比较关心的一个问题。笔者对这个问题进行了反复实作和探索,下边笔者将通过一个完整的简单例子来说明如何保存和显示SQL数据库中的图像数据(同时包括BMP和JPEG两种格式)。
一、 创建演示数据库
在SQL SERVER中新建一演示数据库:Demo,并创建一数据表Picture1,结构如下:
| 字段名 |
Dtata Type |
Identity |
| Id |
Int |
Yes |
| Isbmp |
Tinyint |
|
| Myimage |
Image |
| 字段Isbmp是用来记录在Myimage中存入的图像的类型(0表JPEG,1表BMP,其它值表无图像),Isbmp数据类型选用整型Tinyint而末选用逻辑bit型主要是考虑到如下方法仍适用于ACCESS数据库。在SQL中打开表Picture1,添入几条记录,Myimage图像字段值暂不管,字段Isbmp值随便输入0和1之外的其它数。
二、 窗口设计
在DELPHI中新建一个工程,在FORM1上放置如表所示控件(考虑到TDBImage型控件不能正确显示JPEG型图像,所以选用Timage型控件显示所有类型图像)。
| 组件类别 |
组件属性名 |
属性值 |
用途说明 |
| Timage |
caption |
Image1 |
显示图像 |
| name |
Image1 |
| Stretch |
True |
| Tbutton |
caption |
选择图像 |
选择图像 |
| name |
selectimage |
| Tbutton |
caption |
保存图像 |
保存图像到数据库 |
| name |
savetodb |
| TADOConnection |
caption |
Adoconnection1 |
创建与数据库demo的连接 |
| name |
Adoconnection1 |
| Connectionstring |
见备注 |
| Connected |
True |
| Loginprompt |
False |
| Tadotable |
Caption |
Adotable1 |
建立与表Picture1的连接 |
| name |
Adotable1 |
| Connection |
Adoconnection1 |
| Tablename |
Picture1 |
| Active |
True |
| Tdatasource |
Name |
Datasource1 |
建立数据源 |
| Dataset |
Adotable1 |
| Topenpicturedialog |
Caption |
Openpicturedialog1 |
选择图像文件 |
| Name |
Openpicturedialog1 |
| Tdbgrid |
Caption |
Dbgrid1 |
显示记录 |
| Name |
Dbgrid1 |
| Datasource |
Datasource1 |
备注:
adoconnection1.connectstring := 'Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=demo; Data Source=Mysqlserver' Mysqlserver为SQL服务器的名称请据实际情况更改。
|
|
|
|
|
|
|
|