Executeメソッド
機能
SQL文実行の前処理として,レコードがロックされていたときの動作を指定し,データベースにSQL実行の情報を通知します。
検索結果を取得する場合,Executeメソッドを呼び出した後,GetResultSetを呼び出してDBResultSetオブジェクトを取得します。
形式
void Execute (UINT16 swWait = LOCK_OPT_DEFAULT) throw DBSQLCA
引数
swWait
実行するSQL単位に,検索対象のレコードがほかのトランザクションによってロックされていた場合の動作を指定します。
SQL/Kの場合は,どの値を指定しても,ロックが解除されるまで待ち状態になります。
XDM/SDの場合は,どの値を指定しても,ロックが解除されるまで待たないで,すぐにエラーを返します。
次の値のうち,どれか一つを指定します。
- LOCK_OPT_DEFAULT
DBConnectionオブジェクトの設定を引き継ぎます。(DBDriverクラスのConnectメソッドの引数swWaitに指定した値)
- LOCK_OPT_NOWAIT,又は LOCK_OPT_WITH_ROLLBACK
ロックの解除を待たないで,すぐにエラーを返します。HiRDB又はXDM/RDの場合は同時にロールバックを実行します。それ以外のDBMSの場合は,ロールバックは実行しません。
- LOCK_OPT_WITHOUT_ROLLBACK
ロックの解除を待たないで,すぐにエラーを返します。ロールバックは実行しません。
ただし,現在のバージョンでは,XDM/RDではロールバックを実行します。また,HiRDBのDELETE,INSERT,UPDATE文では,このオプションは無効で,LOCK_OPY_WAITと同じ動作になります。
- LOCK_OPT_WAIT
ロックが解除されるまで待ちます。
戻り値
機能詳細
DBPreparedStatementオブジェクトの生成時に設定されているSQL文実行の情報をデータベースに通知します(DBPreparedStatementオブジェクトは,DBConnectionクラスのCreatePreparedStatementメソッドで生成します。)
このステートメントのResultSetが既にある場合,Execute実行時にResultSetは削除されます。
発生する例外
DBSQLCA(RetCode)
- DB_ERROR_NOT_ENOUGH_MEMORY
- メモリ容量が不足しています。
- DB_ERROR_IN_ASYNC_EXECUTE
- ステートメントが非同期実行処理中です。
- DB_ERROR_DRIVER_ERROR
- DBMSでエラーが発生しました。
- DB_ERROR_DAB_ACCESS_ERROR
- DABrokerでエラーが発生しました。
- DBSQLCAクラスで詳細コードを確認してください。
- DB_ERROR_DAB_SYSTEMCALL_ERROR
- システムコールでエラーが発生しました。
- DBSQLCAクラスで詳細コードを確認してください。
- DB_DRV_ERROR_PHOLDER_AND_QP
- プレースホルダ,及び?パラメタが混在するSQL文は指定できません。
- DB_ERROR_TIMEOUT
- タイムアウトが発生したため制御を戻します。
- DB_DRV_ERROR_INVALID_SQL_EXCLUSIVE
- WITH句で始まるSQL文の指定時には,DBResultSetオブジェクトの生成オプションをTYPE_EXCLUSIVE以外に設定してください。
- DB_ERROR_DAB_ILLEGAL_VALUE
- 指定した引数が不正です。
- DBSQLCAクラスで詳細コードを確認してください。