利用VB存取数据库中BLOB数据.pdf
实用第一 智慧密集
● ^ , , , - J
利用VB存取数掘库申BLOB数据
武洪萍
摘 要 ft.1用VB实现数据库中BLOB数据的存储、显示及删除。利用ADO的Append—
Chunk函数和GetChunk函数存储和读取BLOB数据。
关键词 VB,ADO,BLOB
VC存取大对象数据有众多方法,如OLE、ActiveX等,而
一 、 引言
VC的MFC提供的CDmgBinary类可以方便地实现存取BLOB
在使用数据库的过程中,除了保存大量的文字信息以外, 字段。使用CLongBinary类可以存取超过MAXINT数目的数
经常要存储一些较大的二进制数据对象,如图形、长文本、多 据,最大为可以得到的内存容罐。但数据完全保存在内存中,
媒体 (视频、音频文件)等。例如:一个人事管理系统,就需 对超大量数据消耗太大。
要对每个人的照片进行保存,以便可以方便地对每个人的信息 2.利用ODBC的SQLGetData和SQLPutData函数
进行处理。这些数据被称之为二进制大对象BLOB(BinmTLarge 对于不能存储在单一缓冲区中的数据,在行中的其他数据
Object),亦称为大对象类型数据。一种处理方法是在数据库中 已被获取之后,可以直接用SQLGetData分批从驱动程序检索
仅存储这些二进制数据对应的程序文件的路径信息,尽管这样 这些数据。为了从一列检索长数据,应用程序首先调用
可以大大减小数据库的大小,但是由于文件存在磁盘上,除了 SQLFetchScroll或 SQLFetch移动一行,并且调用SQLGetData获
维护数据库外还要维护文件的路径信息,保持二者的一致,这 取绑定列的数据。SQLPutData允许在应用程序语句执行时,把
对于管理数据库非常不方便。用户比较认可的方法是将BI OB 参数或字段送到驱动程序。该函数用来把字符或二进制数值送
数据存储在数据库的相应字段中,但其存取的方式与普通数据 到字符、二进制或数据源指定类型的字段。它可以传递任何类
有所区别。二进制大对象、OLE对象可以通过BLOB类型存人 型的数据,但对字符和二进制数据可传递部分数据、绑定缓冲
数据库,如果文本对象过大,超出了文本类型的规定长度,则 区并让驱动器从缓冲区中检索数据。
必须用 BLOB字段进行存储。在经常使用的编程环境中并不能 3.使用ADO存取BLOB数据
直接支持BLOB字段,因此需要调用相应的函数完成BLOB的 可以使用ADO中的AppendChunk函数来存取 BLOB数
使用。不同的数据库系统对大对象类型的支持不同,常用数据