K }F
E!L!r!u q+wNGOsoft 官方论坛3.使用ADO存取BLOB数据
2Roj$FF6h | D-E
t7qNGOsoft 官方论坛可以使用ADO中的AppendChunk函数来存取BLOB数据。AppendChunk包含在Field对象中,原型如下:HRESULT AppendChunk (const_variant_t & Data );从函数原型中可以看到关键的问题是需把二进制数据赋值给VARIANT类型的变量。对应于保存数据时我们所使用的AppendChunk函数,读取数据应该使用GetChunk函数,GetChunk的原型如下:_variant_t GetChunk (long Length );给出数据的长度后,GetChunk将返回包含数据的VARIANT类型变量。
三、二进制大对象的处理方法
d!c$W1bHPHP解密,PHP破解,免费Dezend Team,免费破解,免费反编译,免费威客程序,免费悬赏问答程序,163ask问答系统,商业软件,网站免费客服系统,免费网上客服系统,仿百度知道程序,网站制作在数据处理中,对于每个大对象字段的数据,首先选择相应的大对象读取方法,把此大对象数据取出后保留在一个临时文件中,然后在目的数据库插入数据,遇到大对象字段时,选择相应的大对象存取方法,再从临时文件中依次读出数据插入到指定字段中。
下面是使用VB实现SQL数据库中图片的上传以及保存到数据库的功能。在得到图片数据并将其保存到数据库中时,不能直接使用Insert语句对数据库进行操作,而是要使用ADO的AppendChunk方法,同样的,读出数据库中的图片数据,要使用GetChunk方法。表中图片字段sphoto的字段类型为Bianry。程序界面如下图1所示。
图1 图片处理界面
程序代码如下:
1.公共变量的定义
Const ChunkSize As Long = 100
Const BlockSize As Long = 100
Const TempFile As String = "tempfile.tmp"
Dim byteData() As Byte '定义数据块数组
Dim DiskFile As String '图像文件名
Dim NumBlocks As Long '定义数据块个数
Dim FileLength As Long '标识文件长度
Dim LeftOver As Long '定义剩余字节长度
Dim SourceFile As Long '定义自由文件号
Dim byteChunk() As Byte
Dim conn As Connection
Dim rs As Recordset
|