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 Version 8 メッセージ」を参照してください。

クラスの意味とサブクラスの関係を次に示します。

クラスサブクラス設定条件
00000正常終了
01nnn正常終了(ただし,警告あり)
02000データがない
40nnn異常終了(トランザクションはロールバックした)
R2000データがない(ただし,リストを使用した検索で,リスト作成時には存在した行が返らなかった場合)
mmnnn異常終了
mm及びnnnの意味を次に示します。
mm:マニュアル「HiRDB Version 8 メッセージ」で示すSQLSTATEのクラスが設定されます。
nnn:マニュアル「HiRDB Version 8 メッセージ」で示すSQLSTATEのサブクラスが設定されます。
ただし,mm及びnnnはHiRDBの機能拡張によって値が変わる場合があります。