一、引言 在使用数据库的过程中,除了保存大量的文字信息以外,经常要存储一些较大的二进制数据对象,如图形、长文本、多媒体(视频、音频文件)等。例如:一个人事管理系统,就需要对每个人的照片进行保存,以便可以方便地对每个人的信息进行处理。这些数据被称之为二进制大对象BLOB(Binary Large Object),亦称为大对象类型数据。一种处理方法是在数据库中仅存储这些二进制数据对应的程序文件的路径信息,尽管这样可以大大减小数据库的大小,但是由于文件存在磁盘上,我们除了维护数据库外还要维护文件的路径信息,保持二者的一致,这对于我们管理数据库非常不方便。用户比较认可的方法是将BLOB数据存储在数据库的相应字段中,但其存取的方式与普通数据有所区别。二进制大对象、OLE对象可以通过BLOB类型存入数据库,如果文本对象过大,超出了文本类型的规定长度,则必须用BLOB字段进行存储。我们在经常使用的编程环境中并不能直接支持BLOB字段,因此需要调用相应的函数完成BLOB的使用。不同的数据库系统对大对象类型的支持不同,常用数据库系统支持的大对象数据类型如下表所示:
表 数据库系统支持的大对象数据类型
数据库系统 |
大对象类型 |
6f8y(j |
|
SQL SERVER xE&_0e*n#X5r免费|Dezend |
“sql_variant”,“ntext”,“image”,“varbinary”,“binary”,“text” |
ORACLE |
“blob”,“long raw”,“bfile”,“raw”,“clob”,“long” |
SYBASE |
“long varchar” |
Z:{ |
|
VFPiU |
“memo” |
\
y6~/p{4j7ViXACCESS
|
“ole object”,“memo” |
KINGBASE |
“blob”,“text”,“bytea”,“varbinary”,“binary”,“text” |
二、二进制[1]nv+@Ka+o免费|Dezend Team|开源破解程序|PHP解密|PHP破解|PHP|Ruby on Rails二进制 二进制大对象的存取方法
f$fPT'zv.N-\5XPHP解密,PHP破解,免费Dezend Team,免费破解,免费反编译,免费威客程序,免费悬赏问答程序,163ask问答系统,商业软件,网站免费客服系统,免费网上客服系统,仿百度知道程序,网站制作1.CLongBinary类
6L:I N[1]wcT免费|Dezend Team|开源破解程序|PHP解密|PHP破解|PHP|Ruby on RailsVC存取大对象数据有众多方法,如OLE、ActiveX等,而VC的MFC提供的CLongBinary类可以方便地实现存取BLOB字段。使用CLongBinary类可以存取超过MAXINT数目的数据,最大为可以得到的内存容量。但数据完全保存在内存中,对超大量数据消耗太大。
PfA5M.p:r)DA }PHP解密,PHP破解,免费Dezend Team,免费破解,免费反编译,免费威客程序,免费悬赏问答程序,163ask问答系统,商业软件,网站免费客服系统,免费网上客服系统,仿百度知道程序,网站制作2.利用ODBC的SQLGetData和SQLPutData函数 对于不能存储在单一缓冲区中的数据,在行中的其他数据已被获取之后,可以直接用SQLGetData分批从驱动程序检索这些数据。为了从一列检索长数据,应用程序首先调用SQLFetchScroll或SQLFetch移动一行,并且调用SQLGetData获取绑定列的数据。SQLPutData允许在应用程序语句执行时,把参数或字段送到驱动程序。该函数用来把字符或二进制数值送到字符、二进制或数据源指定类型的字段。它可以传递任何类型的数据,但对字符和二进制数据可传递部分数据、绑定缓冲区并让驱动器从缓冲区中检索数据。
|