TTConnectionリファレンス
TTConnection
クラスは、データベースに対する接続という概念をカプセル化します。TTConnection
は、ODBC接続ハンドル(SQLHDBC
)の付加価値C++ラッパーと考えることができます。
TTConnectionの使用方法も参照してください。
パブリック・メンバー
メンバー | 説明 |
---|---|
|
接続先データベースの指定を求めるプロンプトを表示するかどうかを指定します(これは、接続文字列でデータベースが指定されているかどうかにも左右されます)。 有効な値は、 |
パブリック・メソッド
この項では、TTConnection
パブリック・メソッドの概要を説明します。
パブリック・メソッドの概要
メソッド | 説明 |
---|---|
データベースにトランザクションをコミットします。 |
|
新しいデータベース接続を開きます。 |
|
データベース接続を閉じます。 |
|
データベースに対する永続コミット操作を実行します。 |
|
この接続と関連付けられているODBC接続ハンドル(型 |
|
接続のコンテキスト値を返します。 |
|
オブジェクトがTimesTenに接続されている場合は |
|
最後の |
|
接続の自動コミットを無効にします。 |
|
接続の自動コミットを有効にします。 |
|
接続のトランザクション分離レベルを |
|
接続のトランザクション分離レベルを |
|
TimesTen組込みプロシージャ |
|
|
|
|
|
TimesTen ODBCドライバ |
Commit()
void Commit()
データベースにトランザクションをコミットします。これにより、Commit()
またはRollback()
メソッドへの最後のコール後に、接続で実行されたすべての操作がコミットされます。エラーが発生するとTTStatus
オブジェクトが例外としてスローされます。Rollback()
も参照してください。
Connect()
virtual void Connect(const char* connStr)
virtual void Connect(const char* connStr, const char* username,
const char* password)
virtual void Connect(const char* connStr, DRIVER_COMPLETION_ENUM driverCompletion)
新しいデータベース接続を開きます。connStr
パラメータで指定された接続文字列を使用して接続が作成されます。ユーザーとパスワードを、接続文字列の一部、別のパラメータまたはDRIVER_COMPLETION_ENUM
値として(パブリック・メンバーを参照)指定します。後述のメソッドDisconnect()
も参照してください。
データベースに接続する権限は、CREATE SESSION
権限を使用して、直接またはPUBLIC
ロールを介してユーザーに付与する必要があります。接続メソッドを参照してください。
エラーが発生するとTTStatus
オブジェクトが例外としてスローされます。すべての例外の警告は通常は情報を示すもので、通常は無視しても問題ありません。Connect()
メソッドを使用する場合は、次のロジックの使用が推奨されます。
TTWarning
とTTError
は、TTStatus
のサブクラスです。
TTConnection conn;
...
try {
conn.Connect("DSN=mydsn", "myuser", "password");
}
catch (TTWarning warn) {
// warnings from Connect() are usually informational
cerr << ''Warning while connecting to TimesTen: '' << warn << endl;
}
catch (TTError err) {
// handle the error; this could be a serious problem
}
Disconnect()
void Disconnect()
データベース接続を閉じます。エラーが発生するとTTStatus
オブジェクトが例外としてスローされます。前述のメソッドConnect()
も参照してください。
DurableCommit()
void DurableCommit()
データベースに対する永続コミット操作を実行します。永続コミット操作により、インメモリー・トランザクション・ログ・バッファがファイル・システムにフラッシュされます。このメソッドでは、TimesTen組込みプロシージャttDurableCommit
がコールされます。
Oracle TimesTen In-Memory DatabaseリファレンスのttDurableCommitを参照してください。
getHdbc()
SQLHDBC getHdbc()
この接続と関連付けられているODBC接続ハンドルを返します。
GetTTContext()
void GetTTContext(char* output)
各データベース接続に一意な値である接続のコンテキスト値を返します。接続のコンテキストは、たとえば、TimesTenのttStatus
ユーティリティを使用し、TimesTen接続をPID(プロセスID)と関連付けるために使用できます。
コンテキスト値は、output
パラメータを介して返されます(CHAR[17]
以上の配列が必要です)。
このメソッドにより、TimesTen組込みプロシージャttContext
がコールされます。Oracle TimesTen In-Memory DatabaseリファレンスのttContextを参照してください。
isConnected()
bool isConnected()
オブジェクトが(Connect()
メソッドによって)TimesTenに接続されている場合はTRUE
、そうでない場合はFALSE
を返します。
Rollback()
void Rollback()
トランザクションをロールバック(取消)します。最後のCommit()
またはRollback()
へのコールの後に、この接続を介して行われたデータベースの変更は取り消されます。エラーが発生するとTTStatus
オブジェクトが例外としてスローされます。Commit()
も参照してください。
SetAutoCommitOff()
void SetAutoCommitOff()
接続の自動コミットを無効にします。後述のメソッドSetAutoCommitOn()
も参照してください。
TimesTenは自動コミットが無効の場合にのみ最適なパフォーマンスで実行されるため、このメソッドはTTConnection::Connect()
によって自動的にコールされます。
自動コミットが無効の場合、SELECT
文をコミットするには、TTCmd::Close()
を明示的にコールする必要があることに注意してください。
SetAutoCommitOn()
void SetAutoCommitOn()
接続の自動コミットを有効に設定します(つまり、すべてのSQL文を独自のトランザクションで実行します)。前述のメソッドSetAutoCommitOff()
も参照してください。
TimesTenは、自動コミットが無効の場合、より迅速に実行されるので、SetAutoCommitOn()
は一般的には推奨されません。
SetIsoReadCommitted()
void SetIsoReadCommitted()
接続のトランザクション分離レベルをTXN_READ_COMMITTED
に設定します。コミット読取り分離レベルは、単一トランザクションのパフォーマンスと複数接続の優れた同時実行性という最善の組合せを提供します。次のメソッドSetIsoSerializable()
も参照してください。
SetIsoSerializable()
void SetIsoSerializable()
接続のトランザクション分離レベルをTXN_SERIALIZABLE
に設定します。通常、シリアライズ可能分離レベルは個別のトランザクションでは優れたパフォーマンスを提供しますが、同時実行性はきわめて低下します。ほぼすべての状況下で、シリアライズ可能分離レベルよりもコミット読取り分離レベルの方が適切です。前述のメソッドSetIsoReadCommitted()
も参照してください。
SetLockWait()
void SetLockWait(int secs)
TimesTen組込みプロシージャttLockWait
をパラメータ(secs
)付きでコールして、接続のロック・タイムアウト時間を設定します。一般的には、ほとんどのアプリケーションでロックのタイムアウトには2秒または3秒で十分です。デフォルトのロック・タイムアウト時間は10秒です。
Oracle TimesTen In-Memory DatabaseリファレンスのttLockWaitを参照してください。
SetPrefetchCloseOff()
void SetPrefetchCloseOff()
TT_PREFETCH_CLOSE
接続オプションを無効にします。後述のメソッドSetPrefetchCloseOn()
も参照してください。
SetPrefetchCloseOn()
void SetPrefetchCloseOn()
TT_PREFETCH_CLOSE
接続オプションをオンにします(これは、クライアント/サーバー・アプリケーションでのシリアライズ可能トランザクションのSELECT
問合せパフォーマンスを最適化する場合に便利です)。この方法は、TimesTenに直接接続するアプリケーションには何もメリットがないことに注意してください。前述のメソッドSetPrefetchCloseOff()
も参照してください。
Oracle TimesTen In-Memory Database C開発者ガイドの問合せのパフォーマンスの最適化を参照してください。
SetPrefetchCount()
void SetPrefetchCount(int numrows)
TimesTen ODBCドライバがSELECT
文に対して内部で一度にフェッチする行数を、クライアント/サーバー・アプリケーションによって調整できます。numrows
の値の範囲は1から128である必要があります。
この方法は、TimesTenに直接接続するアプリケーションには何もメリットがないことに注意してください。
ノート:
このメソッドは、TTCmd::FetchNext()
を複数回実行することと同等ではありません。そのかわりに、このパラメータを適切に使用すると、TTCmd::FetchNext()
の各コールにかかる時間が短縮されます。
TT_PREFETCH_COUNT
の詳細は、Oracle TimesTen In-Memory Database C開発者ガイドの複数行のデータのプリフェッチを参照してください。