16.2.9 SQLWarningクラス
(1) 概要
SQLWarningクラスでは,次の機能が提供されます。
-
データベースアクセスの警告に関する情報の提供
SQLWarningオブジェクトは,警告が報告される原因となったメソッドのオブジェクトに,例外での通知なしで蓄積されます。
(2) 注意事項
(a) 蓄積されたSQLWarningオブジェクトの解放
SQLWarningオブジェクトは,警告が報告される原因となったメソッドのオブジェクト(Connection,Statement,PreparedStatement,CallableStatement,又はResultSet)から,チェーンによって蓄積されます。
蓄積されたSQLWarningオブジェクトを明示的に解放するには,チェーンをつないでいるオブジェクトから,clearWarningsを実行する必要があります。
(b) SQLWarningオブジェクトの生成条件
SQLの実行で発生した警告が,JDBCドライバ内で保持することを,警告保持レベルで指定している場合,SQLWarningオブジェクトを生成して警告情報を保持します。SQLWarningの生成条件を次に示します。
SQLの実行結果 |
警告保持レベル |
||
---|---|---|---|
IGNORE |
SQLWARN |
ALLWARN |
|
SQLCODE>0,かつSQLCODEが100,110,及び120以外 |
× |
× |
○ |
SQL連絡領域のSQLWARN0がW(SQLWARN6がWである場合を除く) |
× |
○ |
○ |
JDBCドライバ内での警告発生 |
× |
○ |
○ |
- (凡例)
-
○:生成します。
×:生成しません。
- 注
-
警告保持レベルは,プロパティのHiRDB_for_Java_SQLWARNING_LEVEL,又はメソッドのsetSQLWarningLevelで指定できます。デフォルトはSQLWARNです。
(c) 警告メッセージ
SQLWarningから取得できるメッセージを次に示します。
条件 |
getMessageで取得するメッセージ |
---|---|
SQLWARN0がW |
KFPJ01074-W |
SQLWARN0が'△',かつSQLCODE>0(SQLCODE=100,110,及び120を除く) |
KFPAXXXXX-X |
JDBCドライバ内で警告が発生 |
KFPJXXXXX-W |
(d) バッチ更新
バッチ更新実行中に複数行の更新で警告が発生しても,SQLWarningは1個しか生成しません。