6.16 SQLSTATE変数
SQLを実行するとHiRDBによってリターンコード(SQLSTATE)が設定されます。SQLSTATE変数は,2けたのクラス,及び3けたのサブクラスで構成されている5けたの文字列です。
SQLSTATE変数は,プリプロセス実行時にシステムが宣言文をソースプログラム中に埋め込むため,UAPでの宣言は必要ありません。データ型は,C言語ではchar[5],COBOL言語ではPIC X(5)で宣言しています。
参照する場合は,変数名称SQLSTATEを指定してください。
また,複数接続機能を使用した環境では,DECLARE CONNECTION HANDLE SET文でSQLSTATEが使用する接続ハンドルを宣言しておく必要があります。
設定されるSQLSTATEの値は,クライアント環境変数PDSTANDARDSQLSTATE及びシステム共通定義pd_standard_sqlstateの設定によって変わります。SQLSTATEについては,マニュアル「HiRDB メッセージ」を参照してください。
クラスの意味とサブクラスの関係を次に示します。
クラス |
サブクラス |
設定条件 |
---|---|---|
00 |
000 |
正常終了 |
01 |
nnn |
正常終了(ただし,警告あり) |
02 |
000 |
データがない |
40 |
nnn |
異常終了(トランザクションはロールバックした) |
R2 |
000 |
データがない(ただし,リストを使用した検索で,リスト作成時には存在した行が返らなかった場合) |
mm |
nnn |
異常終了 |