如何用vb存取sqlserver中的图像数据

如何用vb存取sqlserver中的图像数据

ID:20338193

大小:61.00 KB

页数:4页

时间:2018-10-11

如何用vb存取sqlserver中的图像数据_第1页
如何用vb存取sqlserver中的图像数据_第2页
如何用vb存取sqlserver中的图像数据_第3页
如何用vb存取sqlserver中的图像数据_第4页
资源描述:

《如何用vb存取sqlserver中的图像数据》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、如何用VB存取SQLServer中的图像数据>>教育资源库  本文介绍MISSQLServer对图像数据的存储机制和存取方法。针对VB开发工具,介绍了一种通过ADOField对象的GetChunk方法和AppendChunk方法来存取MISSQLServer中的图像数据的方法。  在一个完善的医院信息MIS中,图像数据的存取是必不可少的,比如X光片、CT像片的保存。一方面,这些图像数据在远程诊疗为准确诊断病情提供了重要的依据,另一方面,也为快速查阅病人资料提供了基本条件。图像数据的存取在其它应用系统如GIS中也有广泛的应用。  1、SQLServer中图像

2、数据的存储机制  在MISSQLServer中,对于小于8000个字节的图像数据可以用二进制型(binary、varbinary)来表示。但通常要保存的一些医学影像图片都会大于8000个字节。SQLServer提供了一种机制,能存储每行大到2GB的二进制对象(BLOB),这类对象可包括image、text和ntext三种数据类型。Image数据类型存储的是二进制数据,最大长度是231-1(2,147,483,647)个字节。  BLOB数据在MISSQLServer系统中的存储方式不同于普通的数据类型,对于普通类型的数据系统直接在用户定义的字段上存储数据值

3、,而对于BLOB类型数据,系统开辟新的存储页面来存放这些数据,表中BLOB类型数据字段存放的仅是一个16个字节的指针,该指针指向存放该条记录的BLOB数据的页面。  2、SQLServer中图像数据的存取  在MISSQLServer中,当数据小于8000个字节时,可以用普通的SQL操纵语句(SELECT、INSERT、UPDATE、DELETE)来完成对字段的操纵,当数据大于8000个字节时,SQL提供了zy_ctzy_ctzy_ctg_ctptrval160x54345  可以看出,这三个函数的使用比较复杂,虽然可以通过生成存贮过程来调用执行,但有一个

4、缺陷是在读取数据时,READTEXT函数读取的数据无法直接传递回前端应用程序。  3、VB6.0中图像数据的存取  VB6.0的ADOField对象提供了GetChunk方法和AppendChunk方法来存取BLOB数据,这两个函数实质是通过API调用WRITETEXT、READTEXT和UPDATETEXT这三个函数,简化了调用的方法。  (1)GetChunk和AppendChunk方法介绍:  GetChunk方法检索其部分或全部长二进制或字符数据。GetChunk调用返回的数据将赋给变量。如果Size大于剩余的数据,则GetChunk仅返回剩余的数

5、据而无需用空白填充变量。如果字段为空,则GetChunk方法返回Null。每个后续的GetChunk调用将检索从前一次GetChunk调用停止处开始的数据。但是,如果从一个字段检索数据然后在当前记录中设置或读取另一个字段的值,ADO将认为已从第一个字段中检索出数据。如果在第一个字段上再次调用GetChunk方法,ADO将把调用解释为新的GetChunk操作并从记录的起始处开始读取。Fiel123下一页>>>>这篇文章来自..,。d对象的第一个AppendChunk调用将数据写入字段,覆盖所有现有的数据,随后的AppendChunk调用则添加到现有数据。  

6、由于系统资源总是有限的,如果一次读(存)取大量数据,可能会引起服务器、客户机死机或是服务器的性能大大下降,因此使用这两个函数时,要将图像数据进行分段读写。  (2)程序实现:  程序一:写数据函数:PublicFunctionAppendBlobFromFile(blobColumnAsADODB.Field,ByValFileName)AsBooleanDimFileNumberAsInteger'文件号 DimDataLenAsLong'文件长度DimChunksAsLong'数据块数DimChunkAry()AsByte

7、9;数据块数组DimChunkSizeAsLong'数据块大小DimFragmentAsLong'零碎数据大小DimlngIAsLong'计数器OnErrorGoToErrorHandleAppendBlobFromFile=FalseChunkSize=2048'限制每次读取的块大小为2KFileNumber=FreeFile'产生随机的文件号OpenFileNameForBinaryAccessReadAsFileNumber'打开图像文件DataLen=LOF(FileNumber)'获得文件长

8、度IfIsNull(blobColumn)ThenExitFunc

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。