sqlj.runtime.ExecutionContext クラス

sqlj.runtime.ExecutionContext クラスは、実行コンテキスト用に定義されています。 実行コンテキストは、SQL ステートメントの実行を制御するために使用されます。

変数

ADD_BATCH_COUNT
フォーマット:
public static final int ADD_BATCH_COUNT

getUpdateCount メソッドにより戻すことができる定数。 これは前のステートメントが実行されておらず、既存のステートメント・バッチに追加されたことを示します。

AUTO_BATCH
フォーマット:
public static final int AUTO_BATCH

setBatchLimit メソッドに渡すことができる定数。 これは暗黙のバッチ実行を実行する必要があり、SQLJ がバッチ・サイズを決定する必要があることを示します。

DBDefault
フォーマット:
public static final short DBDefault=-5;

標識変数に代入可能な定数。 データ・サーバーに渡される対応するホスト変数の値がデフォルト値であることを指定します。

DBNonNull
フォーマット:
public static final short DBNonNull=0;

標識変数に代入可能な定数。 データ・サーバーに渡される対応するホスト変数の値が null 以外の値であることを指定します。

DBNull
フォーマット:
public static final short DBNull=-1;

標識変数に代入可能な定数。 データ・サーバーに渡される対応するホスト変数の値が SQL NULL 値であることを指定します。

DBUnassigned
フォーマット:
public static final short DBUnassigned=-7;

標識変数に代入可能な定数。 対応するホスト変数の値がデータ・サーバーに渡されないことを指定します。

EXEC_BATCH_COUNT
フォーマット:
public static final int EXEC_BATCH_COUNT

getUpdateCount メソッドから戻すことができる定数。 これはステートメント・バッチが実行されたばかりであることを示します。

EXCEPTION_COUNT
フォーマット:
public static final int EXCEPTION_COUNT

getUpdateCount メソッドから戻すことができる定数。 これは前の実行が完了する前に例外がスローされたか、または実行コンテキスト・オブジェクトに対して操作が実行されていないことを示します。

NEW_BATCH_COUNT
フォーマット:
public static final int NEW_BATCH_COUNT

getUpdateCount メソッドから戻すことができる定数。 これは前のステートメントが実行されておらず、新規のステートメント・バッチに追加されたことを示します。

QUERY_COUNT
フォーマット:
public static final int QUERY_COUNT

setBatchLimit メソッドに渡すことができる定数。 これは前の実行で結果セットが作成されたことを示します。

UNLIMITED_BATCH
フォーマット:
public static final int UNLIMITED_BATCH

getUpdateCount メソッドから戻すことができる定数。 これは、バッチ・サイズに関係なく、ステートメントを引き続きステートメント・バッチに追加する必要があることを示します。

コンストラクター:
ExecutionContext
フォーマット:
public ExecutionContext()

ExecutionContext インスタンスを作成します。

メソッド

cancel
フォーマット:
public void cancel() throws SQLException

実行コンテキスト・オブジェクトを使用するスレッドにより現在実行中の SQL 操作をキャンセルします。 実行コンテキスト・オブジェクト上に保留中のステートメント・バッチがある場合、そのステートメント・バッチはキャンセルされてクリアされます。

cancel メソッドは、ステートメントがキャンセルできない場合は SQLException をスローします。

execute
フォーマット:
public boolean execute ( ) throws SQLException

このメソッドは、SQLJ 変換プログラムによって生成されるコードで使用されます。 これはアプリケーション・プログラムによる直接の使用向けのものではありません。

executeBatch
フォーマット:
public synchronized int[] executeBatch() throws SQLException

保留中のステートメント・バッチを実行し、更新カウントの配列を戻します。 保留中のステートメント・バッチがない場合は、NULL が戻されます。 このメソッドが呼び出されると、呼び出しが例外の結果になった場合でも、ステートメント・バッチはクリアされます。

戻される配列内の各要素は、以下のいずれかの値になります。
-2
この値は、SQL ステートメントは正常に実行されたが、更新された行数は判別できなかったことを示します。
-3
この値は SQL ステートメントが失敗したことを示します。
Other integer
この値は、ステートメントにより更新された行の数です。

executeBatch メソッドは、データベース・エラーがステートメント・バッチの実行中に発生した場合、SQLException をスローします。

executeQuery
フォーマット:
public RTResultSet executeQuery ( ) throws SQLException

このメソッドは、SQLJ 変換プログラムによって生成されるコードで使用されます。 これはアプリケーション・プログラムによる直接の使用向けのものではありません。

executeUpdate
フォーマット:
public int executeUpdate() throws SQLException

このメソッドは、SQLJ 変換プログラムによって生成されるコードで使用されます。 これはアプリケーション・プログラムによる直接の使用向けのものではありません。

getBatchLimit
フォーマット:
synchronized public int getBatchLimit()

バッチが暗黙的に実行される前にバッチに追加されたステートメントの数を戻します。

戻り値は以下のいずれかになります。
UNLIMITED_BATCH
この値はバッチ・サイズが無制限であることを示します。
AUTO_BATCH
この値はバッチ・サイズが有限であるが不明であることを示します。
Other integer
現在のバッチ制限。
getBatchUpdateCounts
フォーマット:
public synchronized int[] getBatchUpdateCounts()

バッチ内で正常に実行された各ステートメントにより更新された行数を含む配列を戻します。 配列内の要素の順序は、ステートメントがバッチに挿入された順序に対応します。 バッチ内のどのステートメントも正常に完了しなかった場合には NULL を戻します。

戻される配列内の各要素は、以下のいずれかの値になります。
-2
この値は、SQL ステートメントは正常に実行されたが、更新された行数は判別できなかったことを示します。
-3
この値は SQL ステートメントが失敗したことを示します。
Other integer
この値は、ステートメントにより更新された行の数です。
getFetchDirection
フォーマット:
synchronized public int getFetchDirection() throws SQLException

特定の実行コンテキストから生成されたスクロール可能反復子オブジェクトの、現在のフェッチ方向を戻します。 フェッチ方向が実行コンテキストに設定されていない場合、sqlj.runtime.ResultSetIterator.FETCH_FORWARD が戻されます。

getFetchSize
フォーマット:
synchronized public int getFetchSize() throws SQLException

複数の行が必要な場合に SQLJ によりフェッチされる行数を戻します。 この値は、特定の実行コンテキストから生成された反復子オブジェクトだけに適用されます。 戻り値は、setFetchSize メソッドにより設定された値か、または setFetchSize により値が設定されていない場合は 0 です。

getMaxFieldSize
フォーマット:
public synchronized int getMaxFieldSize()

特定の実行コンテキストを使用する照会内のストリング (文字、グラフィック、または可変長バイナリー) 列に対して戻される、バイトの最大数を戻します。 この制限を超えた場合、SQLJ は残りのバイトを破棄します。 値 0 は、バイトの最大数が無制限であることを意味します。

getMaxRows
フォーマット:
public synchronized int getMaxRows()

特定の実行コンテキストを使用する照会に対して戻される、行の最大数を戻します。 この制限を超えた場合、SQLJ は残りの行を破棄します。 値 0 は、行の最大数が無制限であることを意味します。

getNextResultSet()
フォーマット:
public ResultSet getNextResultSet() throws SQLException

ストアード・プロシージャー呼び出しの後に、ストアード・プロシージャーから結果セットを戻します。

以下のいずれかの条件が当てはまるときは、NULL 値が戻されます。
  • 戻される結果セットがそれ以上存在しない。
  • ストアード・プロシージャー呼び出しが結果セットを作成しなかった。
  • ストアード・プロシージャー呼び出しが実行コンテキストの下で実行されていない。

getNextResultSet() を呼び出す場合、SQLJ は現在オープンしている結果セットをクローズし、次の結果セットに進みます。

getNextResultSet への呼び出し中にエラーが発生した場合、現在の JDBC ResultSet オブジェクトのリソースは解放され、SQLException がスローされます。 getNextResultSet の後続の呼び出しは NULL を戻します。

getNextResultSet(int)
形式:
public ResultSet getNextResultSet(int current)

ストアード・プロシージャー呼び出しの後に、ストアード・プロシージャーから結果セットを戻します。

以下のいずれかの条件が当てはまるときは、NULL 値が戻されます。
  • 戻される結果セットがそれ以上存在しない。
  • ストアード・プロシージャー呼び出しが結果セットを作成しなかった。
  • ストアード・プロシージャー呼び出しが実行コンテキストの下で実行されていない。

getNextResultSet への呼び出し中にエラーが発生した場合、現在の JDBC ResultSet オブジェクトのリソースは解放され、SQLException がスローされます。 getNextResultSet の後続の呼び出しは NULL を戻します。

パラメーター:
current
次の結果セットに進む前に、現在オープンしている結果セットを使用して SQLJ が実行する内容を示します。
java.sql.Statement.CLOSE_CURRENT_RESULT
次の ResultSet オブジェクトが戻されるときに、現在の ResultSet オブジェクトをクローズすることを指定します。
java.sql.Statement.KEEP_CURRENT_RESULT
次の ResultSet オブジェクトが戻されるときに、現在の ResultSet オブジェクトをオープンしたままにすることを指定します。
java.sql.Statement.CLOSE_ALL_RESULTS
次の ResultSet オブジェクトが戻されるときに、オープンしているすべての ResultSet オブジェクトをクローズすることを指定します。
getQueryTimeout
フォーマット:
public synchronized int getQueryTimeout()

特定の実行コンテキスト・オブジェクトを使用する SQL 操作が実行できる、最大秒数を戻します。 SQL 操作がこの制限を超える場合、SQLException がスローされます。 戻り値は、setQueryTimeout メソッドにより設定された値か、または setQueryTimeout により値が設定されていない場合は 0 です。 0 は、実行時間が無制限であることを示します。

getUpdateCount
フォーマット:
public abstract int getUpdateCount() throws SQLException
以下を戻します。
ExecutionContext.ADD_BATCH_COUNT
ステートメントが既存のバッチに追加された場合。
ExecutionContext.NEW_BATCH_COUNT
ステートメントが新規バッチ内の最初のステートメントであった場合。
ExecutionContext.EXCEPTION_COUNT
前のステートメントが SQLException を生成したか、または前に実行されたステートメントがない場合。
ExecutionContext.EXEC_BATCH_COUNT
ステートメントがバッチの一部であり、バッチが実行された場合。
ExecutionContext.QUERY_COUNT
前のステートメントが反復子オブジェクトまたは JDBC ResultSet を作成した場合。
Other integer
ステートメントが、バッチに追加されたのではなく実行された場合。 この値は、ステートメントにより更新された行の数です。
getWarnings
フォーマット:
public synchronized SQLWarning getWarnings()

特定の実行コンテキストを使用して実行された最後の SQL 操作によりレポートされた、最初の警告を戻します。 後続の警告は、最初の警告にチェーニングされます。 警告が出されていない場合は、NULL が戻されます。

getWarnings は、正の SQLCODE を検索するために使用します。

isBatching
フォーマット:
public synchronized boolean isBatching()

実行コンテキストに対してバッチが使用可能である場合には true を戻します。 バッチが使用不可の場合は false を戻します。

registerStatement
フォーマット:
public RTStatement registerStatement(ConnectionContext connCtx, 
 Object profileKey, int stmtNdx)
 throws SQLException

このメソッドは、SQLJ 変換プログラムによって生成されるコードで使用されます。 これはアプリケーション・プログラムによる直接の使用向けのものではありません。

releaseStatement
フォーマット:
public void releaseStatement() throws SQLException

このメソッドは、SQLJ 変換プログラムによって生成されるコードで使用されます。 これはアプリケーション・プログラムによる直接の使用向けのものではありません。

setBatching
フォーマット:
public synchronized void setBatching(boolean batching)
パラメーター:
batching
特定の実行コンテキストで登録されたバッチ可能ステートメントが、ステートメント・バッチに追加できるかどうかを示します。
true
ステートメントはステートメント・バッチに追加できます。
false
ステートメントは個別に実行されます。

setBatching は、setBatching の呼び出し後のプログラム内で実行されるステートメントだけに影響を与えます。 これは前のステートメントまたは既存のステートメント・バッチには影響を与えません。

setBatchLimit
フォーマット:
public synchronized void setBatchLimit(int batch-size)

バッチが暗黙的に実行される前にバッチに追加されるステートメントの最大数を設定します。

パラメーター:
batch-size
以下の値のいずれか。
ExecutionContext.UNLIMITED_BATCH
SQLJ がバッチ可能であるが非互換であるステートメント、またはバッチ可能ではないステートメントを検出した場合にのみ、暗黙の実行が行われることを示します。 この値を設定することは、setBatchLimit を呼び出さないことと同じです。
ExecutionContext.AUTO_BATCH
バッチ内のステートメントの数が SQLJ により設定された数に達したときに、暗黙の実行が行われることを示します。
Positive integer
SQLJ がバッチを暗黙に実行する前にバッチに追加されたステートメントの数。 SQLJ がバッチ可能であるが非互換であるステートメント、またはバッチ可能ではないステートメントを検出した場合、この数のステートメントが追加される前にバッチは実行されている可能性があります。
setBatchLimit は、setBatchLimit の呼び出し後のプログラム内で実行されるステートメントだけに影響を与えます。 既存のステートメント・バッチには影響を与えません。
setFetchDirection
フォーマット:
public synchronized void setFetchDirection(int direction) throws SQLException

特定の実行コンテキストから生成されたスクロール可能反復子オブジェクトの現在のフェッチ方向に関して、SQLJ にヒントを与えます。

パラメーター:
direction
以下の値のいずれか。
sqlj.runtime.ResultSetIterator.FETCH_FORWARD
行は順方向でフェッチされます。 これはデフォルトです。
sqlj.runtime.ResultSetIterator.FETCH_REVERSE
行は逆方向でフェッチされます。
sqlj.runtime.ResultSetIterator.FETCH_UNKNOWN
フェッチの順序は不明です。
その他の入力値の結果は SQLException になります。
setFetchSize
フォーマット:
synchronized public void setFetchSize(int number-of-rows) throws SQLException

複数の行が必要な場合にフェッチすべき行数に関して、SQLJ にヒントを与えます。

パラメーター:
number-of-rows
特定の実行コンテキストと関連付けられたイテレーターについて SQLJ がフェッチする予想行数。
number-of-rows が 0 より小さいか、フェッチ可能な行の最大数より大きい場合、SQLException がスローされます。
setMaxFieldSize
フォーマット:
public void setMaxFieldSize(int max-bytes)

特定の実行コンテキストを使用する照会内のストリング (文字、グラフィック、または可変長バイナリー) 列に対して戻される、バイトの最大数を指定します。 この制限を超えた場合、SQLJ は残りのバイトを破棄します。

パラメーター:
max-bytes
SQLJ が BINARY、VARBINARY、CHAR、VARCHAR、GRAPHIC、または VARGRAPHIC 列から戻す最大バイト数。 値 0 は、バイト数が無制限であることを意味します。 0 がデフォルト値です。
setMaxRows
フォーマット:
public synchronized void setMaxRows(int max-rows)

特定の実行コンテキストを使用する照会に対して戻される、行の最大数を指定します。 この制限を超えた場合、SQLJ は残りの行を破棄します。

setMaxRows が静的に実行されたSELECT文で実行時に呼び出された場合、 setMaxRows は処理のみを通じて結果テーブルの最大行数を制限します。 IBM® Data Server Driver for JDBC and SQLJ 処理のみで FETCH FIRST n ROWS ONLY 節も SELECT ステートメントに追加されなければ、結果表の行の数を制限するデータ・サーバーの最適化は行われません。 FETCH FIRST n ROWS ONLY が SELECT ステートメントに追加され、かつ setMaxRows(m) が呼び出された場合、行の最大数は nm のうちの小さい方になります。 ドライバーは、残りの行を破棄します。

パラメーター:
max-rows
特定の実行コンテキストを使用する照会に対して SQLJ が戻す、行の最大数。 値 0 は、行数が無制限であることを意味します。 0 がデフォルト値です。
setQueryTimeout
フォーマット:
public synchronized void setQueryTimeout(int timeout-value)

特定の実行コンテキスト・オブジェクトを使用する SQL 操作が実行できる、最大秒数を指定します。 SQL 操作がこの制限を超える場合、SQLException がスローされます。

IBM Data Server Driver for JDBC and SQLJ データサーバーのタイプ2接続の場合、 Db2 for z/OS®setQueryTimeout は、 Connection または DataSource プロパティ queryTimeoutInterruptProcessingMode がINTERRUPT_PROCESSING_MODE_CLOSE_SOCKETに設定されている場合のみサポートされます。

パラメーター:
timeout-value
特定の実行コンテキスト・オブジェクトを使用する SQL 操作が実行できる、最大秒数。 0 は、実行時間が無制限であることを示します。 0 がデフォルト値です。