中国程序员联盟 正在重新改版中ing 不便之处还请见谅 改版后将内容涉及java delphi .net php
 
  首页 | 数据库开发 | 网络通讯 | 多线程 | 多媒体开发 | 图像处理 | 程序人生 | 系统函数 | 控件开发 | Web服务
 
  当前位置:笨鱼delphi技术网>数据库开发>数据处理>文章内容

delphi 数据库应用程序开发中图像数据的存取技术

来源:站内 关于:bill 发布时间:2007-06-21   [收藏] [推荐]

Delphi提供了数据访问(DataAccess)和数据控制(DataControls)的可视化控件,能够方便快捷地产生具有良好界面且功能强大的数据库应用程序。对于涉及图像数据(含Graphic字段)的数据库应用程序,如人事管理信息系统等,图像数据的存取技术是一个关键。然而,有关Delphi下图象的存取,特别是图像的保存方面的技术各种资料上很少提及。下面,笔者结合一个简单的例子来说明。

一、图像数据的保存
  1.创建一个含有Graphic字段的数据库列表。
  在WindowsISQ(或Databasedesktop)下create database mydb.gdb
  create table myfrieds
  (name varchar(15) notnull,
          telephone varchar(12),
          address varchar(30),
          zipvarchar(8),
         picture varchar(15),
         image blob);

  其中,picture字段用于保存图像的名称(包括路径),image(Graphic字符)则用于存储图像,其数据类型
为“blob”。

  2.建立窗体(如图1所示),设置窗体中各控件的属性。

  该窗体的主要功能是将某人信息进行编辑和保存。需要注意的图像保存所用的图像框必须用TImage而不能用TDBImage,编辑框宜用Tedit而不宜用TDBEdit,这一点与图像的读取恰好相反。

  其中,各主要控件的属性设置如下:
  Datasource1.Dataset:=table1;
  Table1.Databasename:=mydb.gdb;
  Table1.Tablename:=myfriends;
  Table1.active:=true;
  其他诸如Caption之类的属性设置不再叙述。

  3.数据处理程序的建立。
  (1)图像( .bmp文件)打开的处理。
  procedureTForm1.pictopenbtnClick(Sender:TObject);
  begin
            opendialog1.execute;
     image1.picture.loadfromfile(opendialog1.filename);
  end;

  (2)图像保存的处理。
  图像保存的处理程序完成把在窗体1所编辑的信息包括图像保存到相应的数据库中,其关键是要定义一个Graphic类型的变量且该变量要用Assign()函数传递到相应数据库中保存。具体程序如下:
  procedureTform1.Savebtnclick(sender:TObject);
  var
            graphic1:TGraphic;
  begin
           graphic1:=TGraphic.Create;
     graphic1.loadfromfile(opendialog1.filename);
    table1.insert;
    table1.fieldbyname('name').asstring:=edit1.text;
    table1.fieldbyname('telephon').asstring:=edit2.text;
    table1.fieldbyname('address').asfloat:=edit3.text;
    table1.fieldbyname('zip').asfloat:=edit4.text;
    table1.fields[4].assign(graphic1);
    table1.post;
    graphic1.free;
  end;

二、图像数据的读取
  在数据库数据(包括Graphic字段的数据)的读取和浏览方面,Delphi这一具有强大代码自动生成功能的面向对象的开发工具的优越性得到淋漓尽致的体现。毫不夸张地说,不需要一条语句即可完成这一功能!

  建立窗体(如下图所示),设置各控件的属性。

  图中Table1和Datasource1的属性的设置与数据的保存部分(图1)相同,所不同的是数据库数据的读取时用TDBEdit和TDBImage控件而不用TEdit和TImage。控件TDBEdit和TDBImage只要将datafield属性设置为其相对应的域;TDBNavigator的datasouce属性设置为datasource1即可。


[浏览: 次]   
上一篇:delphi 开发数据库程序经验三则   下一篇:delphi 实现不同数据库间数据转移
[收藏] [推荐] [返回顶部] [打印本页] [关闭窗口]  
    评论加载中…
google adsense热点文章
·delphi Delphi 中使用原生 ADO 控制数
·delphi Base64编码/解码及ZLib压缩/解
·delphi Delphi_有关ADO专题
·delphi Delphi下的ADO
·delphi 数据库事务处理
·delphi DataSet数据复制
·delphi Oracle9i 如何用sysdba连接数据
·delphi 多线程执行数据库查询
·delphi 开发数据库程序经验三则
·delphi 将纯文本导入数据库
·delphi 输入图片到Blob字段
·delphi 如何给日期时间字段赋空值
     delphi技术网 | firefox 下载 | Avant Browser下载 | dedecms 技术网 | drupal 爱好者 | php 技术网
  Copyright@www.delphichm.com,2006-2009.All Rights Reserved.
 
程序员联盟 | delphi Java .net|QQ:707102932