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