Statement类

Statement对象用于执行SQL语句。语句可以是返回结果集的查询,也可以是返回更新计数的非查询语句。非查询SQL可以是insert、update或delete语句。非查询SQL语句也可以是DML语句(如create、grant等)或存储过程调用。

查询、插入/更新/删除或存储过程调用语句可能具有IN绑定参数,而存储过程调用语句可能具有OUT绑定参数,或者同时具有IN和OUT的绑定参数,称为IN/OUT参数。

closeResultSet()

当不需要结果集时,立即释放指定的resultSet数据库和ACCI资源。

语法

void closeResultSet(

   ResultSet *resultSet);
参数 描述
resultSet 要关闭的结果集。

closeStream()

关闭参数流指定的流。

语法

void closeStream(

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

execute()

执行可以返回结果集或更新计数的SQL语句。语句可能具有必须写入的可读流,在这种情况下,执行的结果可能不可用。(UString为字符集支持)

参数 描述

Status execute(

const string &sql="");

要执行SQL语句。

Status execute(

const UString &sql);

要执行SQL语句。

executeArrayUpdate()

执行insert/update/delete语句,这些语句仅对绑定参数使用setDataBuffer()。绑定参数必须是数组大小为arrayLength的参数。(UString为字符集支持)

参数 描述

Status executeArrayUpdate(

const string &sql="");

绑定变量的每个缓冲区中提供的元素数量。

Status executeArrayUpdate(

const UString &sql);

绑定变量的每个缓冲区中提供的元素数量。

executeQuery()

运行返回ResultSet的SQL语句。被调用的语句应该是一个查询语句。返回一个ResultSet,其中包含查询生成的数据。(UString为字符集支持)

参数 描述

Status executeQuery(

const string &sql="");

要执行SQL语句。

Status executeQuery(

const UString &sql);

要执行SQL语句。

executeUpdate()

执行非查询语句(如SQL INSERT、UPDATE、DELETE语句)、DDL语句(如CREATE/ALTER等)或存储过程调用。对于INSERT、UPDATE或DELETE,返回行数;对于不返回任何内容的SQL语句,返回0。

语法

unsigned int executeUpdate(

   const string &sql="");

getBatchErrorMode()

返回批处理错误模式的状态;如果启用批处理错误模式,则为TRUE,否则为FALSE。

语法

bool getBatchErrorMode() const;

getBDouble()

返回SQL语句中绑定为OUT参数的DOUBLE列的值,如果值为SQL NULL,则结果为0。

语法

BDouble getBDouble(

   unsigned int paramIndex) = 0;
参数 描述
paramIndex 参数指标;第一个参数是1,第二个是2,依此类推。

getBfile()

以BFILE对象的形式返回BFILE参数的值。

语法

Bfile getBfile(

   unsigned int paramIndex);
参数 描述
paramIndex 参数指标;第一个参数是1,第二个是2,依此类推。

getBFloat()

返回SQL语句中绑定为OUT参数的FLOAT列的值,如果值为SQL NULL,则结果为0。

语法

BFloat getBFloat(

   unsigned int paramIndex) = 0;
参数 描述
paramIndex 参数指标;第一个参数是1,第二个是2,依此类推。

getBlob()

返回SQL语句中绑定为OUT参数的BLOB列的值,如果值为SQL NULL,则结果为0。

语法

Blob getBlob(

   unsigned int paramIndex);
参数 描述
paramIndex 参数指标;第一个参数是1,第二个是2,依此类推。

getClob()

以CLOB对象的形式返回CLOB参数的值。

语法

Clob getClob(

   unsigned int paramIndex);
参数 描述
paramIndex 参数指标;第一个参数是1,第二个是2,依此类推。

getConnection()

返回实例化语句对象的连接。

语法

Connection* getConnection() const;

getCursor

以ResultSet的形式获取OUT参数的REF游标值。可以从这个结果集中获取数据。必须使用registerOutParam()方法将OUT参数注册为游标。返回输出参数值的ResultSet。

语法

ResultSet * getCursor(

   unsigned int paramIndex);
参数 描述
paramIndex 参数指标;第一个参数是1,第二个是2,依此类推。

getDate

以日期对象的形式获取SQL日期参数的值。返回参数值;如果值为SQL NULL,则结果为NULL。

语法

Date getDate(

   unsigned int paramIndex) const;
参数 描述
paramIndex 参数指标;第一个参数是1,第二个是2,依此类推。

getDouble

以c++双精度值的形式获取双精度参数的值。返回参数值;如果值为SQL NULL,则结果为0。

语法

double getDouble(

   unsigned int paramIndex);
参数 描述
paramIndex 参数指标;第一个参数是1,第二个是2,依此类推。

getFloat

以c++ float的形式获取FLOAT参数的值。返回参数值;如果值为SQL NULL,则结果为0。

语法

float getFloat(

   unsigned int paramIndex);

getInt

以c++ int的形式获取INT参数的值。返回参数值;如果值为SQL NULL,则结果为0。

语法

unsigned int getInt(

    unsigned int paramIndex);
参数 描述
paramIndex 参数指标;第一个参数是1,第二个是2,依此类推。

getIntervalDS

以IntervalDS对象的形式获取的参数值。

语法

IntervalDS getIntervalDS(

   unsigned int paramIndex);
参数 描述
paramIndex 参数指标;第一个参数是1,第二个是2,依此类推。

getIntervalYM

以IntervalYM对象的形式获取的参数值。

语法

IntervalYM getIntervalYM(

   unsigned int paramIndex);
参数 描述
paramIndex 参数指标;第一个参数是1,第二个是2,依此类推。

getNumber

以Number对象的形式获取NUMBER参数的值。返回参数值;如果值为SQL NULL,则结果为NULL。

语法

Number getNumber(

   unsigned int paramIndex);
参数 描述
paramIndex 参数指标;第一个参数是1,第二个是2,依此类推。

getACIStatement

获取与该语句关联的ACI语句句柄。

语法

ACIStmt * getACIStatement() const;

getResultSet

以ResultSet的形式返回当前结果。

语法

ResultSet * getResultSet();

getSQL

返回与Statement对象关联的当前SQL字符串。

语法

string getSQL() const;

getSQLUString

返回与Statement对象关联的当前SQL字符串。(UString为字符集支持)

语法

string getSQLUString() const;

getStream

以流的形式返回参数值。

语法

Stream * getStream(

   unsigned int paramIndex)
参数 描述
paramIndex 参数指标;第一个参数是1,第二个是2,依此类推。

getString

以字符串的形式获取CHAR、VARCHAR或LONGVARCHAR参数的值。返回参数值;如果值为SQL NULL,则结果为空字符串。

语法

string getString(

   unsigned int paramIndex);
参数 描述
paramIndex 参数指标;第一个参数是1,第二个是2,依此类推。

getUString

以字符串的形式获取CHAR、VARCHAR或LONGVARCHAR参数的值。返回参数值;如果值为SQL NULL,则结果为空字符串。

语法

UString getUString(

   unsigned int paramIndex);
参数 描述
paramIndex 参数指标;第一个参数是1,第二个是2,依此类推。

getTimestamp

以Timestamp对象的形式获取SQL TIMESTAMP参数的值。返回参数值;如果值为SQL NULL,则结果为NULL。

语法

Timestamp getTimestamp(

    unsigned int paramIndex);
参数 描述
paramIndex 参数指标;第一个参数是1,第二个是2,依此类推。

getUInt

以C ++ unsigned int的形式获取BIGINT参数的值。 返回参数值; 如果值为SQL NULL,则结果为0。

语法

unsigned int getUInt(

   unsigned int paramIndex);
参数 描述
paramIndex 参数指标;第一个参数是1,第二个是2,依此类推。

int的形式获取BIGINT参数的值。返回参数值;如果值为SQL NULL,则结果为0。

getUpdateCount

如果执行DML语句,则返回受影响的行数。

语法

unsigned int getUpdateCount() const;

isNull

一个OUT参数的值可能是SQL NULL;isNull()报告最后读取的值是否有这个特殊的值。注意,必须首先对一个参数调用getxxx()来读取它的值,然后调用isNull()来查看该值是否为SQL NULL。如果最后读取的参数为SQL NULL,则返回TRUE。

语法

bool isNull(

   unsigned int paramIndex ) const;
参数 描述
paramIndex 参数指标;第一个参数是1,第二个是2,依此类推。

isTruncated

此方法检查参数的值是否被截断。如果参数的值被截断,则返回TRUE;否则,返回FALSE。

语法

bool isTruncated(

   unsigned int paramIndex) const;
参数 描述
paramIndex 参数指标;第一个参数是1,第二个是2,依此类推。

registerOutParam

这个方法注册PL/SQL存储过程的每个out参数的类型。在执行PL/SQL存储过程之前,必须显式调用此方法来注册每个out参数的类型。只有输出参数时才应该调用此方法。对 in/out参数使用setxxx()方法。(UString为字符集支持)

参数 描述

void registerOutParam(

unsigned int paramIndex,

Type type,

unsigned int maxSize

const string &sqltype

参数指标;第一个参数是1,第二个是2,依此类推。

按类型定义的SQL类型代码;只有与ACCI数据类型(如日 期、字节等)对应的数据类型。

检索值的最大大小。对于ACCIBYTESAOCCISTRING的数据 类型,maxSize应该大于0。(默认为0)

数据库中类型的名称(用于使用CREATE type创建的类型)

void registerOutParam(

unsigned int paramIndex,

Type type,

unsigned int maxSize

const UString &typName,

const UString &schName

参数指标;第一个参数是1,第二个是2,依此类推。

按类型定义的SQL类型代码;只有与ACCI数据类型(如日 期、字节等)对应的数据类型。

检索值的最大大小。对于ACCIBYTESAOCCISTRING的数据 类型,maxSize应该大于0。(默认为0)

Type的名字

模式的名字

setAutoCommit

的错误消息。语句可以处于自动提交模式。在这种情况下,任何执行的语句也会自动提交。默认情况下,自动提交模式是关闭的。

语法

void setAutoCommit(

   bool autoCommit);
参数 描述
autoCommit true使自动提交;false禁用自动提交。

SetBatchErrorMode

启用或禁用批处理错误处理模式。

语法

virtual void setBatchErrorMode(

   bool batchErrorMode);
参数 描述
batchErrorMode TRUE启用批处理错误;FALSE禁用批处理错误。

SetBDouble

设置BDOUBLE参数。

语法

void setBDouble(

   unsigned int paramIndex,

   const BDouble &dval);
参数 描述
paramIndex 参数指标;第一个参数是1,第二个是2,依此类推。
dval 参数值。

setBfile

设置BFILE参数。

语法

void setBfile(

   unsigned int paramIndex,

   const Bfile &val);
参数 描述
paramIndex 参数指标;第一个参数是1,第二个是2,依此类推。
val 参数值。

setBFloat

设置BFLOAT参数。

语法

void setBFloat(

   unsigned int paramIndex,

   const BFloat &fval);
参数 描述
paramIndex 参数指标;第一个参数是1,第二个是2,依此类推。
fval 参数值。

setBinaryStreamMode

定义要作为二进制流返回的列。

语法

void setBinaryStreamMode(

   unsigned int colIndex,

   unsigned int size);
参数 描述
colIndex 参数指标;第一个参数是1,第二个是2,依此类推。
size 以二进制流形式读取或返回的数据量。这被限制为32KB (32,768字节)。

setBlob

设置BDOUBLE参数。

语法

void setBlob(

   unsigned int paramIndex,

   const Blob &val);
参数 描述
colIndex 参数指标;第一个参数是1,第二个是2,依此类推。
val 参数值。

setCharacterStreamMode

定义要作为字符流返回的列。

语法

void setCharacterStreamMode(

   unsigned int colIndex,

   unsigned int size);
参数 描述
colIndex 参数指标;第一个参数是1,第二个是2,依此类推。
size 以二进制流形式读取或返回的数据量。这被限制为32KB (32,768字节)。

setClob

设置CLOB参数。

语法

void setClob(

   unsigned int paramIndex,

   const Clob &val);
参数 描述
paramIndex 参数指标;第一个参数是1,第二个是2,依此类推。
val 参数值。

setDate

设置DATE参数。

语法

void setDate(

   unsigned int paramIndex,

   const Date &val);
参数 描述
paramIndex 参数指标;第一个参数是1,第二个是2,依此类推。
val 参数值。

SetDataBuffer

指定数据可用的数据缓冲区。也用于可调用语句的OUT绑定参数。

缓冲区参数是指向用户分配的数据缓冲区的指针。数据的当前长度必须在length参数中指定。数据量不应超过size参数。最后,类型是数据的数据类型。

注意,不是所有类型都可以在缓冲区中提供。例如,setDataBuffer()接口不能提供所有ACCI分配的类型(如字节、日期等)。类似地,c++标准库字符串也不能通过setDataBuffer()接口提供。类型可以是任何ACI数据类型,如VARCHAR2, CSTRING, CHARZ等等。

语法

void setDataBuffer(

   unsigned int paramIndex,

   void *buffer,

   Type type,

   sb4 size,

   ub2 *length,

   sb2 *ind = NULL,

   ub2 *rc= NULL);
参数 描述
paramIndex 参数指标;第一个参数是1,第二个是2,依此类推。
buffer 指向用户分配缓冲区的指针。
type 在缓冲区中提供(或检索)的数据类型。
size 数据缓冲区的大小。
length 指向缓冲区中数据长度的指针。
ind 指标。
rc 返回代码。

setDouble

设置double参数。

语法

void setDouble(

   unsigned int paramIndex,

   double val);
参数 描述
paramIndex 参数指标;第一个参数是1,第二个是2,依此类推。
val 参数值。

setErrorOnNull

启用/禁用在语句的paramIndex参数上读取空值时的异常。如果启用了异常,如果参数值为NULL,那么在paramIndex参数上调用getxxx()将导致SQLException异常。此调用还可用于禁用异常。

语法

void setErrorOnNull(

   unsigned int paramIndex,

   bool causeException);
参数 描述
paramIndex 参数指标;第一个参数是1,第二个是2,依此类推。
causeException 如果为真,启用异常。如果为假禁用。

setErrorOnTruncate

在发生截断时启用/禁用异常。

语法

void setErrorOnTruncate(

   unsigned int paramIndex,

   bool causeException);
参数 描述
paramIndex 参数指标;第一个参数是1,第二个是2,依此类推。
causeException 如果为真,启用异常。如果为假禁用。

setFloat

设置float参数。

语法

void setFloat(

   unsigned int paramIndex,

   float val);
参数 描述
paramIndex 参数指标;第一个参数是1,第二个是2,依此类推。
val 参数值。

setInt

设置int参数。

语法

void setInt(

   unsigned int paramIndex,

   int val);
参数 描述
paramIndex 参数指标;第一个参数是1,第二个是2,依此类推。
val 参数值。

setIntervalDS

设置IntervalDS参数。

语法

void setIntervalDS(

   unsigned int paramIndex,

   const IntervalDS &val);
参数 描述
paramIndex 参数指标;第一个参数是1,第二个是2,依此类推。
val 参数值。

setIntervalYM

设置IntervalYM参数。

语法

void setIntervalYM(

   unsigned int paramIndex,

   const IntervalYM &val);
参数 描述
paramIndex 参数指标;第一个参数是1,第二个是2,依此类推。
val 参数值。

setNull

将参数设置为SQL NULL。注意,必须指定参数的SQL类型。

语法

void setNull(

   unsigned int paramIndex,

   Type type);
参数 描述
paramIndex 参数指标;第一个参数是1,第二个是2,依此类推。
type SQL类型。

setNumber

设置Number参数。

语法

void setNumber(

   unsigned int paramIndex,

   const Number &val);
参数 描述
paramIndex 参数指标;第一个参数是1,第二个是2,依此类推。
val 参数值。

setPrefetchRowCount

设置ACCI在每次到服务器的往返过程中从内部获取的行数。如果两个参数都非零,则使用两个参数中较小的一个。如果这两个参数都为零,那么行数内部默认为1行。

语法

void setPrefetchRowCount(

   unsigned int rowCount);
参数 描述
rowCount 依此类推。每次到服务器的往返要获取的行数。

SetSQL

可以使用这个调用将新的SQL字符串与Statement对象关联起来。与前一条SQL语句关联的资源被释放。特别地,一个先前获得的结果集是无效的。如果在创建语句时使用了空SQL字符串"",则必须首先执行带有适当SQL字符串的setSQL方法。

语法

void setSQL(

   const string &sql);
参数 描述
sql 与语句的连接源具有相同字符集的SQL语句。

setSQLUString

可以使用这个调用将新的SQL字符串与Statement对象关联起来。与前一条SQL语句关联的资源被释放。特别地,一个先前获得的结果集是无效的。(UString为字符集支持)

语法

void setSQLUString(

const UString &sql);
参数 描述
sql 与语句的连接源具有相同字符集的SQL语句。

setString

设置string参数。

语法

void setString(

   unsigned int paramIndex,

   const string &val);
参数 描述
paramIndex 参数指标;第一个参数是1,第二个是2,依此类推。
val 参数值。

setUString

设置string参数。(UString为字符集支持)

语法

virtual void setUString(

unsigned int paramIndex,

const UString &x);

参数 描述
paramIndex 参数指标;第一个参数是1,第二个是2,依此类推。
x 参数值。

setTimestamp

设置Timestamp参数。

语法

void setTimestamp(

   unsigned int paramIndex,

   const Timestamp &val);
参数 描述
paramIndex 参数指标;第一个参数是1,第二个是2,依此类推。
val 参数值。

setUInt

设置UInt参数。

语法

void setUInt(

   unsigned int paramIndex,

   unsigned int val);
参数 描述
paramIndex 参数指标;第一个参数是1,第二个是2,依此类推。
val 参数值。

Status

返回语句的当前状态。

语法

Status status() const;

getAutoCommit()

获取是否提交。

语法

bool getAutoCommit() const;

getBytes()

返回SQL语句中绑定为OUT参数的Bytes列的值,如果值为SQL NULL,则结果为0。

语法

Bytes getBytes(
    unsigned int paramIndex);
参数 描述
paramIndex 参数指标;第一个参数是1,第二个是2,依此类推。

setPrefetchMemorySize()

设置OCCI内部用于存储在每次往返服务器期间获取的数据的内存量。 值为0表示往返过程中获取的数据量受FetchRowCount参数限制。 如果两个参数都不为零,则使用两者中较小的一个。

语法

void setPrefetchMemorySize(
            unsigned int bytes);
参数 描述
bytes 每个服务器往返期间用于存储获取的数据的字节数。

setUInt64

设置Uint64参数。

语法

void setUInt64(
    unsigned int paramIndex,
    Uint64 x);
参数 描述
paramIndex 参数指标;第一个参数是1,第二个是2,依此类推。
x 参数值。

setInt64

设置int64参数。

语法

void setInt64(
    unsigned int paramIndex,
    Uint64 x);
参数 描述
paramIndex 参数指标;第一个参数是1,第二个是2,依此类推。
x 参数值。

getOCIStatement

获取与该语句关联的ACI语句句柄。

语法

OCIStmt * getOCIStatement() const;