システム配列 VGVar.sqlWarn は静的な 11 エレメントの配列で、各エレメントは直前の SQL 入出力操作の SQL 通信域 (SQLCA) 内に戻された警告バイトを含み、index は、SQL SQLCA 記述の警告番号より 1 だけ大きくなります。 例えば、システム変数 VGVar.sqlWarn[2] は SQLWARN1 を参照し、これは項目内の文字に入出力操作で切り捨てが行われたかどうかを示します。
VGVar.sqlWarn のエレメントのうち、システム変数 VGVar.sqlWarn[2] のみが、データベース管理システムによって、Java™ コード用に、またはデバッグ時に更新されます。
VGVar.sqlWarn は、以下の方法で使用できます。
直前の SQL 入出力操作で、プログラムのホスト変数内に十分なスペースがないためにデータベース・マネージャーが文字データ項目に切り捨てを行った場合、VGVar.sqlWarn[2] には W が入ります。 論理式を使用して、特定のホスト変数内の値が切り捨てされたかどうかをテストすることができます。詳しくは、『論理式』の『trunc』の説明を参照してください。
ホスト変数が数値である場合は、切り捨ての警告は出されません。数値の端数部分は、何の通知もなく切り捨てられます。DB2® UDB を使用している場合、数値の端数以外の部分がユーザー変数に適合しないと、sysVar.sqlcode にデータベース・マネージャーから -304 が戻されます。
また、DB2 を使用している場合は、日付または時間の値に対する算術演算からの無効な結果を訂正するための調整が行われると、VGVar.sqlWarn[7] に W が格納されます。
以下の例では、my-char-field が、直前に処理された SQL 行レコード内のフィールドを表し、lost-data が、my-char-field の切り捨てに関する情報のエラー・メッセージを設定する関数を表します。
if (VGVar.sqlWarn[2] == 'W') if (my-char-field is trunc) lost-data(); end end
関連する概念
テキスト・アプリケーションのセグメンテーション
SQL サポート