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对象。 |
|
创建一个Blob对象的副本。 |
| 参数 | 描述 |
|---|---|
| connectionp | 连接指针 |
| srcBlob | 源Blob对象。 |
getStream()¶
从BLOB返回流对象。如果流是打开的,则不允许在Blob对象上打开另一个流,因此用户必须始终在执行任何Blob对象操作之前关闭流。
语法
Stream* getStream(
unsigned int offset = 1,
unsigned int amount = 0);
| 参数 | 描述 |
|---|---|
| offset | 从BLOB开始读取数据的起始位置。如果未指定偏移量,则 从BLOB的开始写入数据。有效值是大于或等于1的数字。 |
| amount | 从BLOB中读取的字节总数;如果amount为0,则以流模式 从输入偏移量读取数据,直到BLOB结束。 |
open()¶
以读/写或只读模式打开BLOB。
语法
void open(
LobOpenMode mode = OCCI_LOB_READWRITE);
| 参数 | 描述 |
|---|---|
| mode | BLOB被打开的模式。有效值:
|
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的数字。 |