Blob类

Blob类定义了Blob类型对象的公共属性。BLOB是一个大型二进制对象,存储在数据库表的一行中作为列值。Blob对象包含一个指向Blob的逻辑指针,而不是Blob本身。

Blob类的方法使您能够执行与Blob对象相关的特定任务。

ResultSet和Statement类的方法,如getBlob()和setBlob(),使您能够访问SQL BLOB值。

一个未初始化的Blob对象可以通过以下方法初始化:

只有setEmpty()、isNull()和operator=()方法在NULL Blob对象上有效。

  • setEmpty()方法。然后可以修改BLOB,方法是将这个BLOB插入表中,然后使用SELECT...FOR UPDATE检索它。write()方法修改BLOB;但是,只有在提交事务时,修改的数据才会刷新到表中。注意,不需要更新。
  • 给它分配一个初始化的Blob对象。

Blob()

Blob类构造函数。

语法 描述
Blob(); 创建一个空Blob对象。
Blob(
const Connection*connectionp);
创建一个未初始化的Blob对象。
Blob (
const Blob &srcBlob);
创建一个Blob对象的副本。
参数 描述
connectionp 连接指针
srcBlob 源Blob对象。

close()

关闭一个BLOB。

语法

void close();

closeStream()

关闭从BLOB获得的流对象。

语法

void closeStream(

  Stream *stream);
参数 描述
stream 将被关闭的流。

getStream()

从BLOB返回流对象。如果流是打开的,则不允许在Blob对象上打开另一个流,因此用户必须始终在执行任何Blob对象操作之前关闭流。

语法

Stream* getStream(

   unsigned int offset = 1,

   unsigned int amount = 0);
参数 描述
offset 从BLOB开始读取数据的起始位置。如果未指定偏移量,则 从BLOB的开始写入数据。有效值是大于或等于1的数字。
amount 从BLOB中读取的字节总数;如果amount为0,则以流模式 从输入偏移量读取数据,直到BLOB结束。

isInitialized()

测试Blob对象是否初始化。如果初始化了Blob对象,则返回TRUE;否则,返回FALSE。

语法

bool isInitialized() const;

isNull()

测试Blob对象是否原子为空。如果Blob对象原子上为空,则返回TRUE;否则,返回FALSE。

语法

bool isNull() const;

isOpen()

测试BLOB是否打开。如果BLOB是打开的,则返回TRUE;否则,返回FALSE。

语法

bool isOpen() const;

length()

返回BLOB中的字节数。

语法

unsigned int length() const;

open()

以读/写或只读模式打开BLOB。

语法

void open(

   LobOpenMode mode = OCCI_LOB_READWRITE);
参数 描述
mode

BLOB被打开的模式。有效值:

  • ACCI_LOB_READWRITE
  • ACCI_LOB_READONLY

operator =()

给当前BLOB分配一个BLOB。只有当目标BLOB存储在表中时,源BLOB才会被复制到目标BLOB。

语法

Blob& operator=(

   const Blob &srcBlob);
参数 描述
srcBlob 要从中复制数据的源BLOB。

read()

将BLOB的一部分或全部读入缓冲区。返回实际读取的字节数。

语法

unsigned int read(

   unsigned int amt,

   unsigned char *buffer,

   unsigned int bufsize,

   unsigned int offset = 1) const;

write()

将数据从缓冲区写入BLOB。此方法隐式地打开BLOB,将缓冲区复制到BLOB中,然后隐式地关闭BLOB。返回实际写入的字节数。

语法

unsigned int write(

   unsigned int amt,

   unsigned char *buffer,

   unsigned int bufsize,

   unsigned int offset = 1);
参数 描述
amt 要写入BLOB的字节数。
buffer 要写入BLOB数据的缓冲区。
buffsize 要写入BLOB数据的缓冲区的大小。有效值是大于或等于amt 的数字。
offset 开始将数据写入BLOB的起始位置。如果未指定偏移量,则从 BLOB的开始写入数据。有效值是大于或等于1的数字。