当前位置: 查字典论文网 >> 如何用VB存取SQL Server中的图像数据

如何用VB存取SQL Server中的图像数据

格式:DOC 上传日期:2013-12-18 11:36:00
如何用VB存取SQL Server中的图像数据
时间:2013-12-18 11:36:00     小编:

如何用VB存取SQL Server中的图像数据 如何用VB存取SQL Server中的图像数据 信息技术论文 更新:2006-4-8 阅读: 如何用VB存取SQL Server中的图像数据

如何用

VB

存取

SQL Server

中的图像数据

何益斌 高景昌 李小琳

摘要

本文介绍MIS SQL Server对图像数据的存储机制和存取方法。针对VB开发工具,介绍了一种通过ADO Field 对象的GetChunk 方法和AppendChunk 方法来存取MIS SQL Server中的图像数据的方法。

关键词

ADO Field对象 BLOB 对象 GetChunk和AppendChunk 方法 image数据类型 医院信息系统

MIS SQL Server

在一个完善的医院信息MIS中,图像数据的存取是必不可少的,比如X光片、CT像片的保存。一方面,这些图像数据在远程诊疗为准确诊断病情提供了重要的依据,另一方面,也为快速查阅病人资料提供了基本条件。图像数据的存取在其它应用系统如GIS中也有广泛的应用。

1、

SQL Server中图像数据的存储机制

BLOB数据在MIS SQL Server系统中的存储方式不同于普通的数据类型,对于普通类型的数据系统直接在用户定义的字段上存储数据值,而对于BLOB类型数据,系统开辟新的存储页面来存放这些数据,表中BLOB类型数据字段存放的仅是一个16个字节的指针,该指针指向存放该条记录的BLOB数据的页面。

2、 SQL Server中图像数据的存取

在MIS SQL Server中,当数据小于 8000 个字节时,可以用普通的SQL操纵语句(SELECT、INSERT、UPDATE、DELETE)来完成对字段的操纵,当数据大于8000个字节时,SQL提供了 WRITETEXT 、READTEXT和UPDATETEXT这三个函数来读取和修改数据。这三个函数的使用方法为:

(1) WRITETEXT {table.column text_ptr}[WITH LOG] {data}

table.column为表中的字段,text_ptr为一个16个字节的指针,data为要写的数据值。可

选参数WITH LOG表示是否要写入日志文件中。

例: DECLARE @ptrval binary

(1

6) --指针

SELECT @ptrval = TEXTPTR(img_ct) FROM zy_ct WHERE id_ct = 20010101001

(2) READTEXT {table.column text_ptr offset size} [HOLDLOCK]

table.column为表中的字段,text_ptr为一个16个字节的指针,offset 为偏移量,即从

第几个字节开始读数据,size为要读的字节数,HOLDLOCK 为在读数据中是否充许其他用户

修改该数据。

例:DECLARE @ptrval varbinary

(1

6)

SELECT @ptrval = TEXTPTR(img_ct) FROM zy_ct WHERE id_ct = 20010101001

(3) UPDATETEXT {table_name.dest_column_name dest_text_ptr}{NULL|insert_offset}

{ NULL | delete_length}[WITH LOG][ inserted_data| {table_name.src_column_name src_text_ptr}]

table_name.dest_column_name 为要修改的text, ntext, 或 image字段;

dest_text_ptr为指向其的指针;insert_offset为偏移量,对于text和image为从

第几开始字节开始写,对于ntext为从第几个字符(双字节)开始写;delete_length

为从insert_offset开始删除delete_length长度的字节(符),为0时不删除,为NULL时

为删除从insert_offset开始到结束的所有数据。要插入的数据为 inserted_data为,也可

是表table_name的src_column_name字段中指针 src_text_ptr所指数据。

例: DECLARE @ptrval binary

(1

6)

SELECT @ptrval = TEXTPTR(img_ct) FROM zy_ct WHERE id_ct = 20010101001

UPDATETEXT zy_ct.img_ct @ptrval 16 0x54345

可以看出,这三个函数的使用比较复杂,虽然可以通过生成存贮过程来调用执行,但有一个缺陷是在读取数据时,

READTEXT函数读取的数据无法直接传递回前端应用程序。

全文阅读已结束,如果需要下载本文请点击

下载此文档

相关推荐 更多