你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:技术专栏 / Linux开发
开发Delphi对象式数据管理功能(9)
 

begin

UnlockResource(HGlobal);

FreeResource(HResInfo);

inherited Destroy;

end;

 

  回顾Initialize方法,我们不难发现:

  ● ResourceStream没有额外地给资源重新分配内存,而是直接使用HGlobal句柄所指 的内存域

  ● ResourceStream中的资源在流的生存期,始终是Lock状态,因此要根据Windows 的内存使用规则合理安排ResourceStream的使用

  ● ResourceStream只是用于访问应用程序和动态链接库中的资源的

 

在Classes在单元中提供了InternalReadComponentRes函数,该函数使用了TResourceStream对象从Delphi应用程序中读取部件。Delphi是将窗体和部件信息放在模块资源的RCDATA段的。

 

20.1.7 TBlobStream对象

 

  从Delphi 数据库开发平台这个意义上说,TBlobStream 对象是个很重要的对象。TBlobStream对象提供了修改TBlobField、TBytesField或TVarBytesField中数据的技术。开发者可以象对待文件或流那样在数据库域中读写数据。

  传统数据库发展的一个重要趋向是往多媒体数据库发展。目前比较著名和流行的数据库都支持多媒体功能,多媒体数据存储中的一大难点是数据结构不规则,数据量大。各大数据库产品是采用BLOB技术解决多媒体数据存储中的问题。Delphi的TBlobStream对象的意义就在于:一方面可以使Delphi应用程序充分利用多媒体数据库的数据管理能力;另一方面又能利用Object Pascal的强大程序设计能力给多媒体数据库提供全方向的功能扩展余地。

  使用TBlobStream对象可以在多媒体数据库的BLOB字段存储任意格式的数据。一般说来,许多多媒体数据库只能支持图像、语音或者OLE服务器支持的数据。利用TBlobStream则不同,只要是程序能够定义的数据格式,它都能在BLOB字段中读写,而不需要其它辅助工具。

  TBlobStream用构造方法Create建立数据库域和BLOB流的联接。用Read或Write 方法访问和改变域中的内容;用Seek方法,在域中定位;用Truncate方法删除域中当前位置起所有的数据。

 

20.1.7.1 TBlobStream的属性和方法

 

  TBlobStream对象从TStream直接继承,没有增添新的属性。它覆盖了Read、Write 和Seek方法,提供了对BLOB字段的访问操作;它增添了Truncate方法以实现BLOB字段中的删除操作。

  1. Read方法

  声明:function Read(var Buffer; Count: Longint): Longint;

Read方法从数据库域的当前位置起复制Count个字节的内容到Buffer中。Buffer也必须至少分配Count个字节。Read方法返回实际传输的字节数,因为传输的字节数可能小于Count,所以需要选择符的边界判断。

  2. Write方法

  声明:function Write(const Buffer; Count: Longint); override; Longint;

Write方法从Buffer中向数据库域的当前位置复制Count个字节的内容。Buffer必须分配有Count个字节的内存空间,函数返回实际传输的字节数,传输过程也要进行选择符边界判断。

  3. Seek方法

  声明:function Seek(Offset: Longint; Origin: Word): Longint;

(编辑:aniston)

  推荐精品文章

·2024年12月目录 
·2024年11月目录 
·2024年10月目录 
·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089