DABroker for C++
DABroker for C++ でSQLを実行する場合,カーソルというリソースを使用します。このカーソルは,処理内容によって必要な個数が異なります。
一つのカーソルに対する占有期間は,オブジェクトの生存期間に依存するケースとメソッド実行時にだけ必要とするケースの二つのケースに分けることができます。オブジェクトの生存期間に依存するケースは,オブジェクトが作成されてから削除されるまで占有します。メソッド実行時にだけ必要とするケースは,そのメソッドの実行が終了すると解放します。一つのコネクションで使用できるカーソル数は64個までです。64個を超えた場合は,DBSQLCA例外をスローしますので64個を超えないようにプログラムで制御する必要があります。
オブジェクトの生存期間に依存するケースで使用するカーソル数を表3-1,メソッド実行時にだけ必要とするケースで使用するカーソル数を表3-2に示します。
表3-2 オブジェクトの生存期間に依存するケース
| クラス名 | DBMSの種類※1 | |
|---|---|---|
| A | B | |
| DBConnection※2 | 1 | 1 |
| DBStatement | 1 | 1 |
| DBPreparedStatement | 1 | 1 |
| DBCallableStatement※3 | 2 | 2 |
| DBRDatabase※2※4 | 1 | 1 |
| DBRResultSet※5 | 1 | 1 |
| A | HiRDB,VOS3 XDM/RD,VOS3 XDM/SD,VOSK SQL/K,Oracle |
| B | SQL Anywhere,Adaptive Server Anywhere,SQL Server |
表3-3 メソッド実行だけ必要とするケース
| クラス名 | メソッド名 | DBMSの種類※1 | |
|---|---|---|---|
| A | B | ||
| DBConnection | ExecuteDirect※2 | 0 | 1 |
| DBDatabaseMetaData | GetTable | 1 | 1 |
| GetColumns | 1 | 1 | |
| GetProcedures | 2 | 2 | |
| GetprocedureColumns | 1 | 1 | |
| GetPrimaryKeys | 1 | 1 | |
| DBStatement | Execute | 0 | 1 |
| GetResult | 0 | 1 | |
| DBPreparedStatement | Execute | 0 | 1 |
| GetResult | 0 | 1 | |
| DBCallableStatement | SetProcedure | 0 | 1 |
| Execute | 0 | 1 | |
| Resume | − | 1 | |
| DBResultSet | Update | 1 | 2 |
| Delete | 1 | 2 | |
| DBRDatabase | ExecuteDirect※2 | 0 | 1 |
| DBRResultSet | Update | 1 | 2 |
| Delete | 1 | 2 | |
注※1 DBMSの種類は以下のとおりです。
| A | HiRDB,VOS3 XDM/RD,VOS3 XDM/SD,VOSK SQL/K,Oracle |
| B | SQL Anywhere,Adaptive Server Anywhere,SQL Server |
注※2 非同期処理の場合は,A:1 B:2となります。
| クラス数 | オブジェクト数 | オブジェクト単位のカーソル使用数 | カーソル使用数 |
|---|---|---|---|
| DBConnection | 1 | 1 | 1 |
| DBStatement | 2 | 1 | 2 |
| DBCallableStatement | 1 | 2 | 2 |
| 合計 | 5 |
All Rights Reserved. Copyright (C) 1998, 2015, Hitachi, Ltd.