プライマリ・コンテンツに移動
Oracle® C++ Call Interfaceプログラマーズ・ガイド
12c リリース1 (12.1)
B72464-02
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

ResultSetクラス

ResultSetは、Statementの実行で生成されたデータの表へのアクセスを提供します。表の行は順序に従って取り出されます。1行の中の列値は、どのような順序でもアクセスできます。

ResultSetは、データの現在行を指し示すカーソルを保持しています。最初、カーソルは第1行目の前にあります。nextメソッドによって、カーソルが次の行に移動します。

getxxx()メソッドを使用して、現在行の列値を取り出します。列の索引番号を使用して値を取り出すことができます。各列には、1から順に番号が付けられています。getxxx()メソッドの場合、OCCIは、基礎となるデータを指定されたC++型に変換して、C++の値を戻そうとします。SQL型はResultSet::getxxx()メソッドを使用してC++型にマップされます。

ResultSetの列の番号、型およびプロパティは、getColumnListMetaData()メソッドが戻すMetaDataオブジェクトによって指定されます。

表13-38 ResultSetクラスで使用される列挙値

属性 オプション
Status
  • DATA_AVAILABLEは、1行以上のデータがサーバーから正常にフェッチされたことを示します。要求した行数(numRows)までのデータが返されています。ストリーム・モードでは、numRows1よりも大きい場合にgetNumArrayRows()メソッドを使用して、取得した正確な行数を求めます。

  • STREAM_DATA_AVAILABLEは、アプリケーションがgetCurrentStreamColumn()メソッドをコールしてストリームを読み取ることを指定します。

  • END_OF_FETCHは、フェッチできるデータがなくなったことを示します。


表13-39 ResultSetメソッドの概要

メソッド 説明

cancel()


ResultSetを取り消します。

closeStream()


指定されたStreamをクローズします。

getBDouble()


現在行の列の値をBDoubleで戻します。

getBfile()


現在行の列の値をBfileで戻します。

getBFloat()


現在行の列の値をBFloatで戻します。

getBlob()


現在行の列の値をBlobオブジェクトで戻します。

getBytes()


現在行の列の値をBytes配列で戻します。

getCharSet()


データをフェッチするキャラクタ・セットを戻します。

getCharSetUString()


データをフェッチするキャラクタ・セットをUStringで戻します。

getClob()


現在行の列の値をClobオブジェクトで戻します。

getColumnListMetaData()


結果セット列の記述情報をMetaDataオブジェクトで戻します。

getCurrentStreamColumn()


現行の読取り可能Streamの列索引を戻します。

getCurrentStreamRow()


処理しているResultSetの現在行を戻します。

getCursor()


ネストしたカーソルをResultSetで戻します。

getDate()


現在行の列の値をDateオブジェクトで戻します。

getDatabaseNCHARParam()


データがNCHARキャラクタ・セットにあるかどうかを戻します。

getDouble()


現在行の列の値をC++ のdouble型で戻します。

getFloat()


現在行の列の値をC++のfloat型で戻します。

getInt()


現在行の列の値をC++のint型で戻します。

getIntervalDS()


現在行の列の値をIntervalDSで戻します。

getIntervalYM()


現在行の列の値をIntervalYMで戻します。

getMaxColumnSize()


setMaxColumnSize()で設定された値を戻します。

getNumArrayRows()


最後の配列フェッチで実際にフェッチした行数を戻します。

getNumber()


現在行の列の値をNumberオブジェクトで戻します。

getObject()


現在行の列の値をPObjectで戻します。

getRef()


現在行の列の値をRefで戻します。

getRowid()


SELECT FOR UPDATE文の現行のROWIDを戻します。

getRowPosition()


現在行の位置のROWIDを戻します。

getStatement()


ResultSetStatementを戻します。

脚注 0getStream()


現在行の列の値をStreamで戻します。

getString()


現在行の列の値を文字列で戻します。

getTimestamp()


現在行の列の値をTimestampオブジェクトで戻します。

getUInt()


現在行の列の値をC++のunsigned int型で戻します。

getUString()


現在行の列の値をUStringで戻します。

getVector()


指定されたコレクション・パラメータをベクターで戻します。

getVectorOfRefs()


現行の位置の列をRefのベクターで戻します。

isNull()


値がNULLかどうかをチェックします。

isTruncated()


切捨てが発生したかどうかをチェックします。

next()


ResultSetの次の行を現在行にします。

preTruncationLength()


切捨て前のパラメータの実際の長さを戻します。

setBinaryStreamMode()


列をバイナリ・ストリームで戻すように指定します。

setCharacterStreamMode()


列をキャラクタ・ストリームで戻すように指定します。

setCharSet()


データを戻すキャラクタ・セットを指定します。

setCharSetUString()


データを戻すキャラクタ・セットを指定します。

setDatabaseNCHARParam()


パラメータを、データベースのNCHARキャラクタ・セットのデータが含まれている列から取り出そうとする場合は、true値を渡すことによって、そのことをOCCIに通知する必要があります。

setDataBuffer()


データをフェッチする、または収集および分散のバインドと定義が行われるデータ・バッファを指定します。

setErrorOnNull()


NULL値が読み取られた場合の例外処理を有効化または無効化します。

setErrorOnTruncate()


切捨てが発生する際の例外を使用可能または使用禁止にします。

setPrefetchMemorySize()


サーバーへの各ラウンドトリップでフェッチしたデータを格納するために、OCCIによって繰り返し使用されるメモリー・サイズを設定します。

setPrefetchRowCount()


サーバーへの各ラウンドトリップで、OCCIによって繰り返しフェッチされる行数を設定します。

setMaxColumnSize()


列から読み取るデータの最大量をバイト数で指定します。envが生成された環境のキャラクタ・セットに基づく必要があります。

status()


ResultSetの現在のステータスを戻します。


cancel()

このメソッドは結果セットを取り消します。

構文

void cancel();

closeStream()

このメソッドは、パラメータstreamによって指定されたストリームをクローズします。

構文

void closeStream(
   Stream *stream); 
パラメータ 説明
stream
クローズするStreamを指定します。

getBDouble()

このメソッドは、現在行の列の値をBDoubleで戻します。値がSQLのNULLの場合、結果はNULLです。

構文

BDouble getBDouble(
   unsigned int colIndex);
パラメータ 説明
colIndex
列の索引を、第1列は1、第2列は2のように指定します。

getBfile()

このメソッドは、現在行の列の値をBfileで戻します。列の値を戻します。値がSQL NULLの場合、結果はNULLになります。

構文

Bfile getBfile(
   unsigned int colIndex);
パラメータ 説明
colIndex
列の索引を、第1列は1、第2列は2のように指定します。

getBFloat()

このメソッドは、現在行の列の値をBFloatで戻します。値がSQLのNULLの場合、結果はNULLです。

構文

BFloat getBFloat(
   unsigned int colIndex);
パラメータ 説明
colIndex
列の索引を、第1列は1、第2列は2のように指定します。

getBlob()

現在行の列の値をBlobとして取得します。列の値を戻します。値がSQL NULLの場合、結果はNULLになります。

構文

Blob getBlob(
   unsigned int colIndex);
パラメータ 説明
colIndex
列の索引を、第1列は1、第2列は2のように指定します。

getBytes()

現在行の列の値をBytes配列として取得します。バイトはサーバーから戻されるRAW値を示します。列の値を戻します。値がSQL NULLの場合、結果はNULL配列になります

構文

Bytes getBytes(
   unsigned int colIndex);
パラメータ 説明
colIndex
列の索引を、第1列は1、第2列は2のように指定します。

getCharSet()

データをフェッチするキャラクタ・セットを文字列で取得します。

構文

string getCharSet(
   unsigned int colIndex) const;
パラメータ 説明
colIndex
列の索引を、第1列は1、第2列は2のように指定します。

getCharSetUString()

データをフェッチするキャラクタ・セットを文字列で取得します。

構文

UString getCharSetUString(
   unsigned int colIndex) const;
パラメータ 説明
colIndex
列の索引を、第1列は1、第2列は2のように指定します。

getClob()

現在行の列の値をClob配列として取得します。列の値を戻します。値がSQL NULLの場合、結果はNULLになります。

構文

Clob getClob(
   unsigned int colIndex);
パラメータ 説明
colIndex
列の索引を、第1列は1、第2列は2のように指定します。

getColumnListMetaData()

ResultSetの列の番号、型およびプロパティは、getMetaDataメソッドによって指定されます。ResultSetの列の説明を戻します。指定された列の値をPObjectで戻します。C++オブジェクトの型は、Environmentのマップに登録されている列のSQL型に対応するC++ PObject型になります。このメソッドは、SQLユーザー定義型のデータをマテリアライズするために使用します。

構文

vector<MetaData> getColumnListMetaData() const;

getCurrentStreamColumn()

結果セットに入力Streamパラメータがある場合、このメソッドは読取りが必要な現行の入力Streamの列索引を戻します。出力Streamを読み取る必要がない場合、または結果セットに入力Stream列がない場合、このメソッドは0 (ゼロ)を戻します。読取りが必要な現行の入力Stream列の列索引を戻します。

構文

unsigned int getCurrentStreamColumn() const;

getCurrentStreamRow()

結果に入力Streamがない場合、このメソッドはOCCIで処理中の結果セットの現在行を戻します。このメソッドは、行の配列セットに含まれる行がすべて処理された後にコールされると0 (ゼロ)を戻します。処理中の現在行の行番号を戻します。第1行目は1、第2行目は2のようになります。

構文

unsigned int getCurrentStreamRow() const;

getCursor()

ネストしたカーソルをResultSetで取得します。この結果セットからデータをフェッチできます。ネストしたカーソルは、CURSOR(SELECT...)句でネストされた問合せの結果として生じます。

SELECT last_name, 
       CURSOR(SELECT  department_name FROM departments) 
FROM employees WHERE last_name = 'JONES'

戻されるREF CURSORが複数の場合は、次のREF CURSORを取得してフェッチを開始する前に、各カーソルからのデータを完全にフェッチする必要があります。ネストしたカーソルに対してResultSetを1つ戻します。

構文

ResultSet * getCursor(
   unsigned int colIndex);
パラメータ 説明
colIndex
列の索引を、第1列は1、第2列は2のように指定します。

getDatabaseNCHARParam()

データがNCHARキャラクタ・セットにあるかどうかを戻します。

構文

bool getDatabaseNCHARParam(
   unsigned int paramIndex) const;
パラメータ 説明
paramIndex
パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

getDate()

現在行の列の値をDateオブジェクトとして取得します。列の値を戻します。値がSQL NULLの場合、結果はNULLになります。

構文

Date getDate(
   unsigned int colIndex);
パラメータ 説明
colIndex
列の索引を、第1列は1、第2列は2のように指定します。

getDouble()

現在行の列の値をC++ のdouble型で取得します。列の値を戻します。値がSQL NULLの場合、結果は0になります。

構文

double getDouble(
   unsigned int colIndex);
パラメータ 説明
colIndex
列の索引を、第1列は1、第2列は2のように指定します。

getFloat()

現在行の列の値をC++のfloat型で取得します。列の値を戻します。値がSQL NULLの場合、結果は0になります。

構文

float getFloat(
   unsigned int colIndex);
パラメータ 説明
colIndex
列の索引を、第1列は1、第2列は2のように指定します。

getInt()

現在行の列の値をC++のint型で取得します。列の値を戻します。値がSQL NULLの場合、結果は0になります。

構文

int getInt(
   unsigned int colIndex);
パラメータ 説明
colIndex
列の索引を、第1列は1、第2列は2のように指定します。

getIntervalDS()

現在行の列の値をIntervalDSオブジェクトとして取得します。列の値を戻します。値がSQL NULLの場合、結果はNULLになります。

構文

IntervalDS getIntervalDS(
   unsigned int colIndex);
パラメータ 説明
colIndex
列の索引を、第1列は1、第2列は2のように指定します。

getIntervalYM()

現在行の列の値をIntervalYMオブジェクトとして取得します。列の値を戻します。値がSQL NULLの場合、結果はNULLになります。

構文

IntervalYM getIntervalYM(
   unsigned int colIndex);
パラメータ 説明
colIndex
列の索引を、第1列は1、第2列は2のように指定します。

getMaxColumnSize()

setMaxColumnSize()で設定された値を取得します。

構文

unsigned int getMaxColumnSize(
   unsigned int colIndex) const;
パラメータ 説明
colIndex
列の索引を、第1列は1、第2列は2のように指定します。

getNumArrayRows()

最後の配列フェッチで実際にフェッチした行数を戻します。next()メソッドと組み合せて使用します。このメソッドは、配列以外のフェッチには使用できません。

構文

unsigned int getNumArrayRows() const;

getNumber()

現在行の列の値をNumberオブジェクトで取得します。列の値を戻します。値がSQL NULLの場合、結果はNULLになります。

構文

Number getNumber(
   unsigned int colIndex);
パラメータ 説明
colIndex
列の索引を、第1列は1、第2列は2のように指定します。

getObject()

列値を保持しているPObjectへのポインタを戻します。

構文

PObject * getObject(
   unsigned int colIndex);
パラメータ 説明
colIndex
列の索引を、第1列は1、第2列は2のように指定します。

getRef()

現在行の列の値をRefAnyで取得します。Ref値を取得しても、Refが参照するデータはマテリアライズされません。また、Ref値は、この値が作成されたセッションまたは接続がオープンしている間、値が保持されます。列値を保持しているRefAnyを戻します。

構文

RefAny getRef(
   unsigned int colIndex);
パラメータ 説明
colIndex
列の索引を、第1列は1、第2列は2のように指定します。

getRowid()

SELECT...FOR UPDATE文の現行の行IDを取得します。このROWIDは、プリコンパイルされたDELETE文などにバインドできます。SELECT...FOR UPDATE文の現行のrowidを戻します。

構文

Bytes getRowid(
   unsigned int colIndex);
パラメータ 説明
colIndex
列の索引を、第1列は1、第2列は2のように指定します。

getRowPosition()

このメソッドは、現在行の位置のrowidを取得します。

構文

Bytes getRowPosition() const;

getStatement()

このメソッドは、ResultSetstatementを戻します。

構文

Statement* getStatement() const;

getStream()

現在行の列の値をStreamで戻します。

構文

Stream * getStream(
   unsigned int colIndex);
パラメータ 説明
colIndex
列の索引を、第1列は1、第2列は2のように指定します。

getString()

現在行の列の値を文字列で取得します。列の値を戻します。値がSQL NULLの場合、結果は空の文字列になります。

構文

string getString(
   unsigned int colIndex);
パラメータ 説明
colIndex
列の索引を、第1列は1、第2列は2のように指定します。

getTimestamp()

現在行の列の値をTimestampオブジェクトとして取得します。列の値を戻します。値がSQL NULLの場合、結果はNULLになります。

構文

Timestamp getTimestamp(
   unsigned int colIndex);
パラメータ 説明
colIndex
列の索引を、第1列は1、第2列は2のように指定します。

getUInt()

現在行の列の値をC++のint型で取得します。列の値を戻します。値がSQL NULLの場合、結果は0になります。

構文

unsigned int getUInt(
   unsigned int colIndex);
パラメータ 説明
colIndex
列の索引を、第1列は1、第2列は2のように指定します。

getUString()

値をUStringで戻します。

このメソッドをコールする必要があるのは、環境のキャラクタ・セットがUTF16の場合、またはUTF16データを明示的に取得するためにsetCharset()メソッドがコールされている場合のみです。

構文

UString getUString(
   unsigned int colIndex);
パラメータ 説明
colIndex
列の索引を、第1列は1、第2列は2のように指定します。

getVector()

このメソッドは、現行の位置の列をベクターで戻します。列はコレクション型(VARRAYまたはネストした表)であることが必要です。コレクション内の要素のSQL型は、ベクター内のオブジェクトのデータ型との互換性が必要です。

構文 説明
void getVector(
   ResultSet *rs,
   unsigned int colIndex,
   vector<BDouble> &vect);
BDoubleのベクターに使用します。
void getVector(
   ResultSet *rs,
   unsigned int colIndex,
   vector<Bfile> &vect);
Bfileのベクターに使用します。
void getVector(
   ResultSet *rs,
   unsigned int colIndex,
   vector<BFloat> &vect);
BFloatのベクターに使用します。
void getVector(
   ResultSet *rs,
   unsigned int colIndex,
   vector<Blob> &vect);
Blobのベクターに使用します。
void getVector(
   ResultSet *rs,
   unsigned int colIndex,
   vector<Bytes> &vect); 
Bytesクラスのベクターに使用します。
void getVector(
   ResultSet *rs,
   unsigned int colIndex,
   vector<Clob> &vect);
Clobのベクターに使用します。
void getVector(
   ResultSet *rs,
   unsigned int colIndex,
   vector<Date> &vect);
Dateクラスのベクターに使用します。
void getVector(
   ResultSet *rs,
   unsigned int colIndex,
   vector<double> &vect);
double型のベクターに使用します。
void getVector(
   ResultSet *rs,
   unsigned int colIndex,
   vector<float> &vect);
float型のベクターに使用します。
void getVector(
   ResultSet *rs,
   unsigned int colIndex,
   vector<int> &vect);
int型のベクターに使用します。
void getVector(
   ResultSet *rs,
   unsigned int colIndex,
   vector<IntervalDS> &vect);
IntervalDSクラスのベクターに使用します。
void getVector(
   ResultSet *rs,
   unsigned int colIndex,
   vector<IntervalYM> &vect);
IntervalYMクラスのベクターに使用します。
void getVector(
   ResultSet *rs,
   unsigned int colIndex,
   vector<Number> &vect);
Numberクラスのベクターに使用します。
void getVector(
   ResultSet *rs,
   unsigned int colIndex,
   vector<Ref<T>> &vect);
この構文は、関数テンプレートの一部の順序付けがサポートされているプラットフォームでのみ使用できます。将来、この関数は非推奨となる可能性があります。かわりに、getVectorOfRefs()を使用できます。
void getVector(
   ResultSet *rs,
   unsigned int colIndex,
   vector<RefAny> &vect);
RefAnyクラスのベクターに使用します。
void getVector(
   ResultSet *rs,
   unsigned int colIndex,
   vector<string> &vect);
string型のベクターに使用します。
void getVector(
   ResultSet *rs,
   unsigned int colIndex,
   vector<T *> &vect);
この構文は、関数テンプレートの一部の順序付けがサポートされているプラットフォームで使用します。
void getVector(
   ResultSet *rs,
   unsigned int colIndex,
   vector<T> &vect);
この構文は、Windows NTおよびz/OSなど、関数テンプレートの一部の順序付けがサポートされていないプラットフォームで使用します。
void getVector(
   ResultSet *rs,
   unsigned int colIndex,
   vector<Timestamp> &vect);
Timestampクラスのベクターに使用します。
void getVector(
   ResultSet *rs,
   unsigned int colIndex,
   vector<unsigned int> &vect);
unsigned int型のベクターに使用します。
void getVector(
   ResultSet *rs,
   unsigned int colIndex,
   vector<UString> &vect);
UStringクラスのベクターに使用します。グローバリゼーション対応の場合です。

パラメータ 説明
rs
結果セットを指定します。
colIndex
列の索引を、第1列は1、第2列は2のように指定します。
vect
ベクター(OUTパラメータ)への参照を指定します。

getVectorOfRefs()

現行の位置の列をREFのベクターで戻します。列はREFのコレクション型(VARRAYまたはネストした表)であることが必要です。Ref<T>に対しては、特化したメソッドのgetVector()ではなく、この関数の使用をお薦めします。

構文

void getVectorOfRefs(
   ResultSet *rs,
   unsigned int colIndex,
   vector< Ref<T> > &vect);
パラメータ 説明
rs
結果セットを指定します。
colIndex
列の索引を、第1列は1、第2列は2のように指定します。
vect
REFのベクター(OUTパラメータ)への参照を指定します。

isNull()

列がSQL NULLの値を持つことがあります。isNull()は、読み取った最後の列がこの特別な値であるかどうかをレポートします。まず、列でgetxxx()をコールしてその値を読み取り、その後にisNull()をコールしてその値がSQL NULLであるかどうかを調べる必要があることに注意してください。読み取った最後の列がSQL NULLであった場合にTRUEを返します。

構文

bool isNull(
   unsigned int colIndex) const;
パラメータ 説明
colIndex
列の索引を、第1列は1、第2列は2のように指定します。

isTruncated()

このメソッドは、パラメータの値が切り捨てられているかどうかをチェックします。パラメータの値が切り捨てられている場合はTRUEを、それ以外の場合はFALSEを戻します。

構文

bool isTruncated(
   unsigned int paramIndex) const;
パラメータ 説明
paramIndex
パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

next()

このメソッドは、前回実行した問合せから指定の行数(numRows)をフェッチし、このフェッチのStatusをレポートします(表13-38の定義を参照)。

非ストリーム・モードの場合、next()は、ステータスDATA_AVAILABLEまたはEND_OF_FETCHのみを戻します。

  • 1度に1つの行をフェッチする場合(numRows=1)、getxxx()メソッドを使用してデータを処理します。

  • 配列フェッチのように1度に複数行をフェッチする場合(numRows>1の場合)は、setDataBuffer()メソッドを使用して、事前割当てしたバッファの位置を指定してから、next()を起動する必要があります。

setDataBuffer()コールによって指定したバッファには、最大numRows個のデータ・レコードを移入できます。戻された正確なレコード数を確認するには、getNumArrayRows()メソッドを使用します。

構文

Status next(
   unsigned int numRows =1);
パラメータ 説明
numRows
配列フェッチに対してフェッチする行数を指定します。

preTruncationLength()

切捨て前のパラメータの実際の長さを戻します。

構文

int preTruncationLength(
   unsigned int paramIndex) const;
パラメータ 説明
paramIndex
パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。

setBinaryStreamMode()

getStreamメソッドが、列をバイナリ・ストリームで戻すように定義します。

構文

void setBinaryStreamMode(
   unsigned int colIndex,
   unsigned int size);
パラメータ 説明
colIndex
列の索引を、第1列は1、第2列は2のように指定します。
size
バイナリ・ストリームで読み取られるデータ量を指定します。

setCharacterStreamMode()

getStreamメソッドが列をキャラクタ・ストリームで戻すように定義します。

構文

void setCharacterStreamMode(
   unsigned int colIndex,
   unsigned int size);
パラメータ 説明
colIndex
列の索引を、第1列は1、第2列は2のように指定します。
size
キャラクタ・ストリームで読み取られるデータ量を指定します。

setCharSet()

指定された列のデフォルトのキャラクタ・セットを上書きします。データが、データベースのキャラクタ・セットからこの列に指定されたキャラクタ・セットに変換されます。

構文

void setCharSet(
   unsigned int colIndex,
   string charSet);
パラメータ 説明
colIndex
列の索引を、第1列は1、第2列は2のように指定します。
charSet
希望するキャラクタ・セットを文字列で指定します。

setCharSetUString()

キャラクタ・セット値のデータがUStringとして戻されるように指定します。

構文

UString setCharSetUString(
   unsigned int colIndex,
   const UString &charSet);
パラメータ 説明
colIndex
列の索引を、第1列は1、第2列は2のように指定します。
charSet
希望するキャラクタ・セットを文字列で指定します。

setDatabaseNCHARParam()

データベースのNCHARキャラクタ・セットのデータが含まれている列からパラメータを取り出す場合は、TRUE値を渡すことによって、そのことをOCCIに通知する必要があります。デフォルトをリストアするにはFALSEを渡します。

構文

void setDatabaseNCHARParam(
   unsigned int paramIndex, 
   bool isNCHAR);
パラメータ 説明
paramIndex
パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。
isNCHAR
TRUEまたはFALSEです。

setDataBuffer()

データをフェッチまたはバインドするデータ・バッファを指定します。このbufferパラメータは、ユーザーが割り当てたデータ・バッファへのポインタです。データの現在の長さをlengthパラメータに指定する必要があります。データ量は、sizeパラメータを超えないようにします。typeには、データのデータ型を指定します。使用できるのは、STL文字列など、OCCI固有でもC++固有の型でもない型のみです。BytesDateなどのOCCIクラスは使用できません。

配列フェッチ用に、setDataBuffer()を使用してデータをフェッチする場合は、各結果セットごとに1回のみコールする必要があります。各行のデータは、buffer (i- 1) (iは行番号)の位置にあるとみなされます。同様に、データの長さは、(length+(i-1))とみなされます。

32Kのlengthパラメータを使用するこのメソッドのバージョンの詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

構文 説明
void setDataBuffer(
   unsigned int colIndex,
   void *buffer,
   Type type,
   sb4 size = 0,
   ub2 *length = NULL,
   sb2 *ind = NULL,
   ub2 *rc = NULL);
ub2 lengthバッファを使用します。これにより、VARCHAR2NVARCHAR2の長さが4,000バイトに制限され、RAWデータ型が2,000バイトに制限されます。
void setDataBuffer(
   unsigned int colIndex,
   void *buffer,
   Type type,
   sb4 size = 0,
   ub4 *length = NULL,
   sb2 *ind = NULL,
   ub2 *rc = NULL);
ub4 lengthバッファ(32K)を使用します。これにより、VARCHAR2NVARCHAR2およびRAWデータ型の長さが増加します。

パラメータ 説明
colIndex
列の索引を、第1列は1、第2列は2のように指定します。
buffer
ユーザーが割り当てたバッファへのポインタを指定します。配列フェッチが行われる場合、バッファにはnumRows * sizeのバイト数が必要です。収集または分散のバインドおよび定義が行われる場合、この構造には、OCIIOVecのアドレスおよびそのアドレスで開始されるOCIIOVec要素の数が格納されます。
type
バッファに入る(取得する)データの型を指定します。
size
データ・バッファのサイズを指定します。配列フェッチの場合、このサイズはデータ項目の各要素のサイズです。
length
バッファのデータ長へのポインタを指定します。配列フェッチの場合、データ長は各バッファ要素に対する長さデータの配列です。配列のサイズはarrayLengthと等しくしてください。
ind
標識変数または配列へのポインタ(IN/OUT)を指定します。
rc
列レベルのリターン・コードの配列へのポインタ(OUT)を指定します。

setErrorOnNull()

このメソッドは、結果セットのcolIndex列でのNULL値の読取りに対する例外を使用可能または使用禁止にします。

構文

void setErrorOnNull(
   unsigned int colIndex,
   bool causeException);
パラメータ 説明
colIndex
列の索引を、第1列は1、第2列は2のように指定します。
causeException
TRUEの場合、例外は使用可能です。FALSEの場合は使用禁止です。

setErrorOnTruncate()

このメソッドは、切捨てが発生する際の例外を使用可能/使用禁止にします。

構文

void setErrorOnTruncate(
   unsigned int paramIndex,
   bool causeException);
パラメータ 説明
paramIndex
パラメータの索引を、第1パラメータは1、第2パラメータは2のように指定します。
causeException
TRUEの場合、例外は使用可能です。FALSEの場合は使用禁止です。

setPrefetchMemorySize()

サーバーへの各ラウンドトリップでフェッチしたデータを格納するために、OCCIによって繰り返し使用されるメモリー・サイズを設定します。0 (ゼロ)の値は、ラウンドトリップ中にフェッチしたデータの量がFetchRowCountパラメータによって制限されることを意味します。両方のパラメータが0 (ゼロ)でない場合、2つのうち量の少ない方が使用されます。

構文

void setPrefetchMemorySize(
   unsigned int bytes);
パラメータ 説明
bytes
各サーバーのラウンドトリップ中にフェッチされたデータの格納に使用するバイト数を指定します。

setPrefetchRowCount()

サーバーへの各ラウンドトリップで、OCCIによって繰り返しフェッチされる行数を設定します。0 (ゼロ)の値は、ラウンドトリップ中にフェッチしたデータの量がFetchMemorySizeパラメータによって制限されることを意味します。両方のパラメータが0 (ゼロ)でない場合、2つのうち量の少ない方が使用されます。両方のパラメータが0 (ゼロ)の場合、行カウントが内部的に1行にデフォルト設定され、これが、getFetchRowCount()メソッドから戻る値となります。

構文

void setPrefetchRowCount(
   unsigned int rowCount);
パラメータ 説明
rowCount
サーバーへの各ラウンドトリップでフェッチする行数を指定します。

setMaxColumnSize()

列から読み取るデータの最大量をバイト数で指定します。envが生成された環境のキャラクタ・セットに基づく必要があります。

構文

void setMaxColumnSize(
   unsigned int colIndex,
   unsigned int max);
パラメータ 説明
colIndex
列の索引を、第1列は1、第2列は2のように指定します。
max
読み取るデータの最大量(バイト単位)を指定します。

status()

結果セットの現在のStatusを戻します。表13-38の定義を参照してください。このメソッドは、繰り返しコールできます。

構文

Status status() const;