Clob类

Clob类定义类型为Clob的对象的公共属性。Clob是作为数据库表的行中的列值存储的大型字符对象。Clob对象包含指向Clob的逻辑指针,而不是指向Clob本身。

Clob类的方法使您能够执行与Clob对象相关的特定任务,包括获取SQL Clob的长度、在客户机上具体化Clob以及提取Clob的一部分的方法。

对于空CLOB对象,惟一有效的方法是setEmpty()、isNull()和operator=()。

ResultSet和Statement类中的方法,如getClob()和setClob(),使您能够访问SQL CLOB值

一个未初始化的CLOB对象可以被初始化:

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

Clob()

Clob类构造函数。

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

close()

关闭一个CLOB。

语法

void close();

closeStream()

关闭从CLOB获得的流对象。

语法

void closeStream(

   Stream *stream);
参数 描述
stream 要关闭的流对象。

getStream()

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

语法

Stream* getStream(

   unsigned int offset = 1,

   unsigned int amount = 0);
参数 描述
offset 开始从CLOB读取数据的起始位置。如果未指定偏移量,则从 CLOB的开始写入数据。有效值是大于或等于1的数字。
amount 要读取的连续字符的总数。如果数量为0,则从偏移值读取 数据,直到CLOB结束。

isInitialized()

测试Clob对象是否已初始化。如果Clob对象被初始化,则返回TRUE;否则,返回FALSE。

语法

bool isInitialized() const;

isNull()

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

语法

bool isNull() const;

isOpen()

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

语法

bool isOpen() const;

length()

返回CLOB中的字符数。

语法

unsigned int length() const;

open()

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

语法

void open(

  LObOpenMode mode = OCCI_LOB_READWRITE);
参数 描述
mode

要打开CLOB的模式。有效值:

  • ACCI_LOB_READWRITE
  • ACCI_LOB_READONLY

operator=()

将一个CLOB分配给当前CLOB。仅当目标CLOB存储在表中时,源CLOB才会复制到目标CLOB。

语法

Clob& operator=(

    const Clob &srcClob);
参数 描述
srcClob 必须从其中复制数据的Clob。

read()

将部分或全部CLOB读入缓冲区。

语法

unsigned int read(

   unsigned int amt,

   unsigned char *buffer,

   unsigned int bufsize,

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

write()

将数据从缓冲区写入CLOB。

语法

unsigned int write(

   unsigned int amt,

   unsigned char *buffer,

   unsigned int bufsize,

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

getCharSetId()

以字符串形式返回 CLOB 的字符集 ID。

语法

string getCharSetId() const

void setCharSetId(const string &charset)

设置与 Clob 关联的字符集 ID。

语法

void setCharSetId(

   const string &charset);
参数 描述
charset 神通支持的字符集名称如:AL32UTF8,ZHS16GBK

UString getCharSetIdUString() const

以字符串形式返回 CLOB 的字符集 ID。UString类型

语法

UString getCharSetIdUString() const;

void setCharSetIdUSString(const UString &charset)

设置与 Clob 关联的字符集 ID。UString类型

语法

void setCharSetIdUSString(

   const UString &charset);
参数 描述
charset 神通支持的字符集名称如:AL32UTF8,ZHS16GBK(UString类型)