第三章 数据库中的图片

第一节 处理BLOBs,在Access中存储图片

      现在开发数据库应用程序不仅仅只需要处理文本或数字数据。例如,如果你正开发基于Interner/Intranet或基于多媒体的应用程序,和数据库中的文本一样,数据库中的图片就必须频繁的显示。

在本教程的第三章,我们将了解怎样通过ADO取出并显示Access数据库中的图形数据(图像)。不要担心处理Access数据库中的图像所需要的数据库编程技巧会比本教程到现在为止所提供的更多。让我们假设比已得到的我们已知道得更多。

如果你从本教程的开始部分学起(尤其是第二章),你就会知道怎样连接数据库并在DBGrid中显示Applications表(来源于我们的aboutdelphi.mdb数据库)。记住,我们需要三个数据组件:DBGrid、ADOTable和DataSource来得到和显示Applications表的数据。

回到第一章我们创建数据库的时候,在Applications表的最后一个字段我们留为空(其他字段我们填上了哑元数据)。最后字段的字段名为Picture,类型为OLE对象类型。

如果你右滚到DBGrid的最后一列,你将看到如图的情况:

使用MS Access时,我们可以在OLE对象类型的字段中存储图像(和其他大数据对象,如声音或录像)。这种类型的数据被视为Binary Large Object Bitmap (BLOB)大二进制对象位图。

当然在处理图像时,几种类型的图片格式是可利用的。最常用的包括JPEG、GIF和BMP。其中JPEG已被网页设计者广泛接受,因为其所需的数据存储量很小(换句话说,JPEGs的数据量比BMPs要小)。

当然,Delphi有处理BMP、GIF和JPEG图形格式的方法。本章接下来的部分将处理JPEG文件格式。

在Access中存储图片(Storing pictures in Access)

      在讨论在Delphi表单中显示数据库表中的图像以前,我们需要在数据库中增加一些图形数据。

运行Access,打开aboutdelphi.mdb库。打开Applications表(它应有一行数据)并选择Picture(图片)字段。

按下面的步骤增加图像:

1、选择Insert(插入) | Object(对象)...将显示一个Insert Object(插入对象)对话框。

2、点击Browse(浏览)按钮,将弹出Browse(浏览)打开对话框。注:在你的计算机上可能有一些.jpg文件,因此你可以使用这些文件,或如果你有Win98和更新的版本,MS Paint将以这种格式保存图片—其他许多工具也可完成同样的功能。找到存放图片的目录并选择一个图片。
注:Picture图片字段上的文本拥有一个可执行的、用于处理计算机上JPEG文件的名称。当然,在表格上你不会看见图片。为了真正看见图片可双击该字段,这将以JPG格式载出与应用程序相关联的图像。
现在,在数据库我们已经拥有了图片,让我们看看怎样在Delphi表单中显示它。从第二章起,我们已有了一个带有数据组件的Delphi表单。

Delphi数据库编程教程(四)相关推荐

  1. Delphi数据库编程教程(七)

    第四章  数据浏览和导航 第一节  设置和连接       欢迎来到免费DB Delphi教程的第四章!到现在为止,本教程以说明了怎样连接到Access数据库及怎样显示数据库表中的图形数据.在上一章我 ...

  2. Delphi数据库编程教程(二)

    填写数据(Filling some data)        为了有一些"哑元"(dummy)数据,在类型(Type)表中填上以下4个记录:"游戏(Game)" ...

  3. Delphi数据库编程教程(三)

    第三节 ADO(ActiveX Data Objects)编程模型 如文章"Delphi中引入ADO"所叙述的,ADO是一套COM(Component Object Model组件 ...

  4. Delphi数据库编程教程(九)

    第五章 数据集数据的后面..... 第一节 数据的状态 当用Delphi和ADO开发数据库应用程序时,大部分工作用于学习数据集组件的帮助文档..为了创建一个基于ADO的程序,Delphi提供了几个数据 ...

  5. Delphi数据库编程教程(五)

    第二节  使用DBImage引出JPEG-错误的方式      DBImage-思路一(The DBImage - take one)       当试图使用Delphi做新的尝试时,我所做的第一件事 ...

  6. Delphi数据库编程一日通

    Delphi数据库编程一日通. 通常情况下,利用 Delphi 开发数据库应用程序,可以使用TTable.TDataSource.TDBEdit.TDBNavigator等构件.只要正确设置了构件的某 ...

  7. C语言连接MySQL数据库编程教程:超详细

    ** C语言连接MySQL数据库编程教程 ** 一.下载安装mysql.h库文件 我们使用的编译器一般为VC6.0或者VS,默认的都是32位编译器,所以我们下载的库文件也直接下载32位的就可以.下面附 ...

  8. 深入浅出Qt数据库编程:从基本操作到高级技巧

    深入浅出Qt数据库编程:从基本操作到高级技巧 (Demystifying Qt Database Programming: From Basic Operations to Advanced Tech ...

  9. oracle 郑阿奇 pdf,Delphi编程教程 (郑阿奇) PDF扫描版

    <delphi编程教程>主要包括delphi 2010集成开发环境.面向对象的pascal语言.窗体和常用组件.菜单类组件和工具栏.多窗体和mdi窗体.文件操作.数据库基础和应用(以sql ...

最新文章

  1. HTML5 网站大观:12个优秀的 HTML5 黑色风格网站设计
  2. spring定时任务(@Scheduled注解)
  3. python解码和编码的区别_python基础小知识,is和==的区别,编码和解码
  4. mybatis使用oracle自动生成主键
  5. matlab转python很难吗_MATLAB在逐渐被Python淘汰吗?
  6. paip.c#.nett 系统托盘动态图标闪烁图标
  7. 国家标准《软件工程 软件开发成本度量规范》GB/T 36964-2018正式发布
  8. 电脑用来测试网段信号的软件,WiFi信号分析仪PC版
  9. 一键智能抠图-原理实现
  10. 顺丰php下单,顺丰订单查询
  11. Android移动应用开发之制作动画基础
  12. 数据挖掘算法和实践(四):支持向量机(iris鸢尾花数据集)
  13. 希尔伯特变换求瞬时频率的matlab动态实现
  14. 超级*** 04格式化左脑
  15. javascript中函数参数是evt详解
  16. Java计算1+2+...+n
  17. VTK交互系统 2 交互器样式
  18. C语言 统计一篇英文短文中单词的个数
  19. 离婚,男人和女人谁更怕?
  20. 个人怎么申请微信公众号-微信公众号使用教程33

热门文章

  1. 读《基于深度学习的跨视角步态识别算法研究》
  2. 网络安全之XSS、CSRF、API接口攻击
  3. 双向链表尾插法(二)
  4. Shell之MP3播放器
  5. 山东大学matlab在哪,山东大学在哪?
  6. IBM Webshere MQ 队列配置
  7. C/C++工程函数重命名
  8. 修改注册表设置ie主页
  9. 小新pro13能转接网线吗_联想小新pro13air从那个接口连接网线
  10. elasticsearch 配置安全认证X-pack