WEB开发网
开发学院数据库MSSQL Server 数据转换冲突及转换过程中大对象的处理 阅读

数据转换冲突及转换过程中大对象的处理

 2008-09-02 10:00:25 来源:WEB开发网   
核心提示: 数据转换过程中大对象的处理 大对象类型概述: 大对象类型BLOB全称为Binary Large Objects,即二进制大对象,数据转换冲突及转换过程中大对象的处理(5),可以把BLOB区别为三种形式:声像数据、二进制数据和大文本数据,因此,SQLPutData允许在应用程序语句执行时,把

数据转换过程中大对象的处理

大对象类型概述:

大对象类型BLOB全称为Binary Large Objects,即二进制大对象。可以把BLOB区别为三种形式:声像数据、二进制数据和大文本数据。因此,最常见的应用就是存储图形、声音等对象,此外大二进制对象、OLE对象也可以通过BLOB类型存入数据库,如果文本对象过大,超出了文本类型的规定长度,则必须用BLOB字段进行存储。我们在经常使用的编程环境中并不能直接支持BLOB字段,因此需要调用相应的函数完成BLOB的使用。

不同的数据库系统对大对象类型的支持不同,常用数据库系统支持的大对象数据类型如表4所示:

数据库系统支持的大对象数据类型:

SQL SERVER "sql_variant","ntext","image","varbinary","binary","text"

ORACLE "BLOB","LONG RAW","BFILE","RAW","CLOB","LONG"

SYBASE "LONG VARchar"

VFP "MEMO"

ACCESS "OLE OBJECT","MEMO"

KINGBASE "blob","text","bytea","varbinary","binary","text"

大对象的存取方法:

(1)利用MFC提供的CLongBinary类:

VC存取大对象数据有众多方法,如OLE、ActiveX等,而VC的MFC提供的CLongBinary类可以方便地实现存取BLOB字段。使用CLongBinary类可以存取超过MAXINT数目的数据,最大为可以得到的内存容量。但数据完全保存在内存中,对超大量数据消耗太大。

(2)利用ODBC的SQLGetData和SQLPutData函数:

对于不能存储在单一缓冲区中的数据,在行中的其他数据已被获取之后,可以直接用SQLGetData分批从驱动程序检索这些数据。为了从一列检索长数据,应用程序首先调用SQLFetchScroll或SQLFetch移动一行,并且调用SQLGetData获取绑定列的数据。SQLPutData允许在应用程序语句执行时,把参数或字段送到驱动程序。该函数用来把字符或二进制数值送到。

上一页  1 2 3 4 5 

Tags:数据 转换 冲突

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接