13.10 Connectionクラス
Connection
クラスは、特定のデータベースとの接続を示します。接続の内部で、SQL文が実行され、結果が戻ります。
表13-11 Connectionクラスで使用される列挙値
属性 | オプション |
---|---|
FailOverEventType |
|
FailOverType |
|
ProxyType |
|
表13-12 Connectionメソッドの概要
メソッド | 概要 |
---|---|
現行ユーザーのパスワードを変更します。 |
|
前回のコミットまたはロールバック以降の変更をコミットし、セッションが保持するデータベース・ロックを解放します。 |
|
SQL文を実行する |
|
接続に関連付けられているオブジェクト・キャッシュをフラッシュします。 |
|
デフォルトのクライアント・キャラクタ・セットを戻します。 |
|
|
|
デフォルトのクライアント |
|
|
|
使用されたクライアントのバージョンを戻します。 |
|
パッケージ |
|
接続からアクセス可能なオブジェクトのメタデータを戻します。 |
|
接続に関連付けられているOCIサーバー・コンテキストを戻します。 |
|
接続に関連付けられているOCIサービス・コンテキストを戻します。 |
|
接続に関連付けられているOCIセッション・コンテキストを戻します。 |
|
使用されたOracleサーバーのバージョンを |
|
使用されたOracleサーバーのバージョンを |
|
文キャッシュのサイズを取得します。 |
|
接続に関連付けられているタグを戻します。 |
|
指定の文がキャッシュされるかどうかを決定します。 |
|
|
|
通知をサブスクリプションにポストします。 |
|
サーバーへの1回のラウンドトリップで複数の |
|
サーバーへの1回のラウンドトリップで複数の |
|
サーバーへの1回のラウンドトリップで複数の |
|
通知に関して複数の |
|
前回のコミットまたはロールバック以降の変更をすべてロールバックし、セッションが保持するデータベース・ロックを解放します。 |
|
文キャッシュを有効化または無効化します。 |
|
|
|
|
|
|
|
サーバーへの1回のラウンドトリップで複数の |
|
サーバーへの1回のラウンドトリップで複数の |
13.10.1 changePassword()
データベースに現在接続しているユーザーのパスワードを変更します。
構文 | 説明 |
---|---|
void changePassword( const string &user, const string &oldPassword, const string &newPassword)=0; |
ユーザーのパスワードを変更します。 |
void changePassword( const UString &user, const UString &oldPassword, const UString &newPassword)=0; |
ユーザーのパスワードを変更します(Unicodeサポート)。クライアントの |
パラメータ | 説明 |
---|---|
user |
データベースに現在接続しているユーザーを指定します。 |
oldPassword |
ユーザーの現行のパスワードを指定します。 |
newPassword |
ユーザーの新規パスワードを指定します。 |
13.10.3 createStatement()
指定されたSQL文でStatement
オブジェクトを作成します。
このメソッドのキャッシュ対応バージョンでは、一致するtag
を持つ文がキャッシュ内で最初に検索され、その文が戻されます。このような文が見つからない場合は、sql
パラメータと一致する文がキャッシュ内で検索され、その文が戻されます。一致する文が見つからない場合は、NULL
のtag
を持つ新規の文が作成され、戻されます。sql
パラメータが空でtag
の検索に失敗すると、このコールではERROR
が生成されます。
このメソッドのキャッシュなしバージョンでは、常に新規の文が作成され、戻されます。
構文 | 説明 |
---|---|
Statement* createStatement( const string &sql="")=0; |
指定されたSQL文をキャッシュ内で検索して戻します。見つからない場合は、新規の文を作成します。 |
Statement* createStatement( const string &sql, const string &tag)=0; |
一致するタグを持つ文をキャッシュ内で検索します。見つからない場合は、指定されたSQLの内容を持つ新規の文を作成します。 |
Statement* createStatement( const UString &sql)=0; |
指定されたSQL文をキャッシュ内で検索して戻します。見つからない場合は、新規の文を作成します。グローバリゼーション対応の場合です。 |
Statement* createStatement( const Ustring &sql, const Ustring &tag)=0; |
一致するタグを持つ文をキャッシュ内で検索して戻します。見つからない場合は、指定されたSQLの内容を持つ新規の文を作成します。グローバリゼーション対応の場合です。 |
パラメータ | 説明 |
---|---|
sql |
Statementオブジェクトに関連付けるSQL文字列を指定します。 |
tag |
キャッシュから取り出す必要のある文に関連付けられているタグを指定します。文キャッシュが無効化されている場合は無視されます。 |
13.10.6 getClientCharSetUString()
UString
のうちグローバリゼーション対応のクライアント・キャラクタ・セットを戻します。
構文
UString getClientCharSetUString() const=0;
13.10.7 getClientNCHARCharSet()
セッションのNCHAR
キャラクタ・セットを戻します。
構文
string getClientNCHARCharSet() const=0;
13.10.8 getClientNCHARCharSetUString()
UString
のうちグローバリゼーション対応のクライアントのNCHAR
キャラクタ・セットを戻します。
構文
UString getClientNCHARCharSetUString() const=0;
13.10.9 getClientVersion()
アプリケーションが実行時に使用するクライアント・ライブラリのバージョンを戻します。
このメソッドは、アプリケーションの実行時にOCCIクライアントのバージョンを確認し、アプリケーションで使用しているコード・パスが、複数の異なるクライアント・パッチ・セットを使用する別々のコード・パスかどうかを判断するために使用されます。
パラメータmajorVersion
およびminorVersion
の値には、マクロOCCI_MAJOR_VERSION
およびOCCI_MINOR_VERSION
がそれぞれ使用されます。これらのマクロは、OCCIクライアント・ライブラリのメジャー・バージョンとマイナー・バージョンを定義します。戻されたバージョンを比較します。
構文
void getClientVersion( int &majorVersion, int &minorVersion, int &updateNum, int &patchNumber, int &portUpdateNum)
パラメータ | 説明 |
---|---|
majorVersion |
クライアント・ライブラリのメジャー・バージョンです。 |
minorVersion |
クライアント・ライブラリのマイナー・バージョンです。 |
updateNum |
更新番号です。 |
patchNumber |
ライブラリに適用されているパッチ番号です。 |
portUpdateNumber |
ライブラリに適用されているポート固有のポート更新番号です。 |
13.10.10 getLTXID()
パッケージDBMS_APP_CONT
の様々なコールで使用される可能性のある論理トランザクションIDを戻します。
構文
Bytes getLTXID() const = 0
13.10.11 getMetaData()
データベース内のオブジェクトのメタデータを戻します。
構文 | 説明 |
---|---|
MetaData getMetaData( const string &object, MetaData::ParamType prmtyp=MetaData::PTYPE_UNK) const=0; |
データベース内のオブジェクトのメタデータを戻します。 |
MetaData getMetaData( const UString &object, MetaData::ParamType prmtyp=MetaData::PTYPE_UNK) const=0; |
データベース内のグローバリゼーション対応オブジェクトのメタデータを戻します。 |
MetaData getMetaData( const RefAny &ref) const=0; |
参照を介してデータベース内のオブジェクトのメタデータを戻します。 |
パラメータ | 説明 |
---|---|
object |
Statementオブジェクトに関連付けるSQL文字列を指定します。 |
prmtyp |
表13-27のMetaDataクラスの列挙された |
ref |
記述する型の型記述子オブジェクト(TDO)への |
13.10.13 getOCIServiceContext()
接続に関連付けられているOCIサービス・コンテキストを戻します。
構文
OCISvcCtx* getOCIServiceContext() const=0;
13.10.15 getServerVersion()
現行のConnection
オブジェクトによって使用されているデータベース・サーバーのバージョンを、string
として戻します。これは、アプリケーションが異なるいくつかのコード・パスを使用し、複数の様々なサーバー・バージョンに接続するときに使用できます。
構文
string getServerVersion() const;
13.10.16 getServerVersionUString()
現行のConnection
オブジェクトによって使用されているデータベース・サーバーのバージョンを、UString
として戻します。これは、アプリケーションが異なるいくつかのコード・パスを使用し、複数の様々なサーバー・バージョンに接続するときに使用できます。
構文
UString getServerVersionUString() const;
13.10.19 isCached()
指定の文がキャッシュされるかどうかを決定します。
構文 | 説明 |
---|---|
bool isCached( const string &sql, const string &tag="")=0; |
一致するタグを持つ文をキャッシュ内で検索します。タグを指定しなければ、一致するSQL文がキャッシュ内で検索されます。 |
bool isCached( const Ustring &sql, const Ustring &tag)=0; |
一致するタグを持つ文をキャッシュ内で検索します。タグを指定しなければ、一致するSQL文がキャッシュ内で検索されます。グローバリゼーション対応の場合です。 |
パラメータ | 説明 |
---|---|
sql |
Statementオブジェクトに関連付けるSQL文字列を指定します。 |
tag |
キャッシュから取り出す必要のある文に関連付けられているタグを指定します。文キャッシュが無効化されている場合は無視されます。 |
13.10.20 pinVectorOfRefs()
Ref
オブジェクトのベクター全体を1回のラウンドトリップでオブジェクト・キャッシュに確保します。確保されたオブジェクトは、OUT
パラメータのベクターを介して使用できます。
構文 | 説明 |
---|---|
template <class T> void pinVectorOfRefs( const Connection *conn, vector <Ref<T>> & vect, vector <T*> &vectObj, LockOptions lockOpt=OCCI_LOCK_NONE); |
オブジェクトを戻します。 |
template <class T> void pinVectorOfRefs( const Connection *conn, vector <Ref<T>> & vect, LockOptions lockOpt=OCCI_LOCK_NONE); |
オブジェクトを明示的に戻しません。アプリケーションでは、前に確保されたオブジェクトを戻す |
パラメータ | 説明 |
---|---|
conn |
接続を指定します。 |
vect |
確保される |
vectObj |
確保操作の完了後にオブジェクトを含むベクターを指定します。これは |
lockOpt |
表13-2の |
13.10.21 postToSubscriptions()
通知をサブスクリプションにポストします。
Subscription
オブジェクトには有効なサブスクリプション名が必要であり、名前空間はNS_ANONYMOUS
に設定する必要があります。ペイロードはこのコールを起動する前に設定される必要があります。そうしないと、ペイロードはNULL
であるとみなされて配信されません。
コール元は、ポストしているコールが完了するまでペイロードを保持する必要があります。このコールはベスト・エフォート方式で保証され、通知は登録されたクライアントに最大1回送信されます。このコールは主として軽量通知に使用され、複数のシステム・イベントを処理するのに役立ちます。より確実な保証が必要な場合には、アプリケーションはOracle Databaseアドバンスト・キューイング機能を使用可能です。
構文
void postToSubscriptions( const vector<aq::Subscription>& sub)=0;
パラメータ | 説明 |
---|---|
sub |
ポスティングを受信するサブスクリプションのベクターを指定します。 |
13.10.22 readVectorOfBfiles()
サーバーへの1回のラウンドトリップで複数のBfile
を読み取ります。Bfile
をすべて読取り用にオープンしておく必要があります。
構文
void readVectorOfBfiles( const Connection *conn, vector<Bfile> &vec, oraub8 *byteAmts, oraub8 *offsets, unsigned char *buffers[], oraub8 *bufferLengths);
パラメータ | 説明 |
---|---|
conn |
接続を指定します。 |
vec |
|
byteAmts |
各 |
offsets |
|
buffers |
データ読取り先バッファのポインタの配列です。 |
bufferLengths |
各バッファのサイズ(単位: バイト)の配列です。 |
13.10.23 readVectorOfBlobs()
サーバーへの1回のラウンドトリップで複数のBLOB
を読み取ります。
構文
void readVectorOfBlobs( const Connection *conn, vector<Blob> &vec, oraub8 *byteAmts, oraub8 *offsets, unsigned char *buffers[], oraub8 *bufferLengths);
パラメータ | 説明 |
---|---|
conn |
接続を指定します。 |
vec |
|
byteAmts |
各 |
offsets |
|
buffers |
データ読取り先バッファのポインタの配列です。 |
bufferLengths |
各バッファのサイズ(単位: バイト)の配列です。 |
13.10.24 readVectorOfClobs()
サーバーへの1回のラウンドトリップで複数のClob
を読み取ります。すべてのClob
は、同じキャラクタ・セット・フォームにあり、かつ同じキャラクタ・セットIDに属する必要があります。
構文 | 説明 |
---|---|
void readVectorOfClobs( const Connection *conn, vector<Clob> &vec, oraub8 *byteAmts, araub8 *charAmts, oraub8 *offsets, unsigned char *buffers[], oraub8 *bufferLengths); |
このメソッドの一般的なフォームです。 |
void readVectorOfClobs( const Connection *conn, vector<Clob> &vec, oraub8 *byteAmts, araub8 *charAmts, oraub8 *offsets, utext *buffers[], oraub8 *bufferLengths); |
|
パラメータ | 説明 |
---|---|
conn |
接続を指定します。 |
vec |
|
byteAmts |
各 |
charAmts |
各 |
offsets |
|
buffers |
データ読取り先バッファのポインタの配列です。 |
bufferLengths |
各バッファのサイズ(単位: バイト)の配列です。 |
13.10.25 registerSubscriptions()
通知に関してSubscription
を登録します。
新規のクライアント・プロセスと停止後に再起動する既存のプロセスは、必要なサブスクリプションすべてに登録する必要があります。サーバーの停止および再起動中もクライアントが稼働している場合、このクライアントは引き続きDISCONNECTED
登録に関する通知を受け取りますが、CONNECTED
登録に関する通知はサーバーが停止している間に失われるため、受け取りません。
構文
void registerSubscriptions( const vector<aq::Subscription>& sub)=0;
パラメータ | 説明 |
---|---|
sub |
通知用に登録するサブスクリプションのベクターです。 |
13.10.26 rollback()
前回のコミットまたはロールバック以降の変更をすべて削除し、セッションが現在保持しているデータベース・ロックを解放します。
構文
void rollback()=0;
13.10.27 setStmtCacheSize()
文キャッシュを有効化または無効化します。0 (ゼロ)以外の値を指定すると、指定したサイズのキャッシュによる文キャッシュが有効化されます。値0 (ゼロ)を指定すると、キャッシュが無効化されます。
構文
void setStmtCacheSize( unsigned int cacheSize)=0;
パラメータ | 説明 |
---|---|
cacheSize |
キャッシュ内の文の最大数です。 |
13.10.28 setTAFNotify()
フェイルオーバーを構成済で、検出する必要のあるConnection
オブジェクトに対して、フェイルオーバー・コールバック関数を登録します。
OCCIがデフォルトの処理を続行できる場合、フェイルオーバー・コールバックはOCCI_SUCCESS
を戻すことでそのことを示す必要があります。フェイルオーバー・イベントfoEvent
の定義については、表13-11を参照してください。foEvent
がFO_ERROR
である場合、コールバック関数は、フェイルオーバーを再試行する必要があることを示すときにはFO_RETRY
を戻し、フェイルオーバーの試行を終了するときにはOCCI_SUCCESS
を戻すことができます。
構文
void setTAFNotify( int (*notifyFn)( Environment *env, Connection *conn, void *ctx, FailOverType foType, FailOverEventType foEvent), void *ctxTAF)
パラメータ | 説明 |
---|---|
notifyFn |
フェイルオーバー・イベント時に起動されるユーザー定義のコールバック関数です。 |
env |
障害の発生した |
conn |
コールバック関数を登録する、障害発生先として想定される |
ctx |
コールバックの登録時にユーザーが提供するコンテキストです。 |
foType |
構成済の |
foEvent |
コールバックをトリガーするフェイルオーバー・イベント・タイプである |
ctxTAF |
起動時にコールバック関数に戻されるユーザー・コンテキストです。 |
13.10.29 terminateStatement()
Statement
オブジェクトをクローズします。
構文 | 説明 |
---|---|
void terminateStatement( Statement *stmt)=0; |
|
void terminateStatement( Statement *stmt, const string &tag)=0; |
文にオプションのタグ |
void terminateStatement( Statement* stmt, const UString &tag) = 0; |
文にオプションのタグ |
パラメータ | 説明 |
---|---|
stmt |
クローズする |
tag |
文に関連付けるタグ |
13.10.30 unregisterSubscription()
通知をオフにしてSubscription
の登録を解除します。
構文
void unregisterSubscription( const aq::Subscription& sub)=0;
パラメータ | 説明 |
---|---|
sub |
通知をオフにする |
13.10.31 writeVectorOfBlobs()
サーバーへの1回のラウンドトリップで複数のBlob
を書き込みます。
構文
void writeVectorOfBlobs( const Connection *conn, vector<Blob> &vec, oraub8 *byteAmts, oraub8 *offsets, unsigned char *buffers[], oraub8 *bufferLengths);
パラメータ | 説明 |
---|---|
conn |
接続を指定します。 |
vec |
|
byteAmts |
各 |
offsets |
|
buffers |
データ書出し元バッファのポインタの配列です。 |
bufferLengths |
各バッファのサイズ(単位: バイト)の配列です。 |
13.10.32 writeVectorOfClobs()
サーバーへの1回のラウンドトリップで複数のClob
を書き込みます。すべてのClob
は、同じキャラクタ・セット・フォームにあり、かつ同じキャラクタ・セットIDに属する必要があります。
構文 | 説明 |
---|---|
void writeVectorOfClobs( const Connection *conn, vector<Clob> &vec, oraub8 *byteAmts, araub8 *charAmts, oraub8 *offsets, unsigned char *buffers[], oraub8 *bufferLengths); |
このメソッドの一般的なフォームです。 |
void writeVectorOfClobs( const Connection *conn, vector<Clob> &vec, oraub8 *byteAmts, araub8 *charAmts, oraub8 *offsets, utext *buffers[], oraub8 *bufferLengths); |
|
パラメータ | 説明 |
---|---|
conn |
接続を指定します。 |
vec |
|
byteAmts |
各 |
charAmts |
各 |
offsets |
|
buffers |
データ書出し元バッファのポインタの配列です。 |
bufferLengths |
各バッファのサイズ(単位: バイト)の配列です。 |