OpenESQL 文は、X/Open と SQL Access Group SQL CAE 規格 (1992) で定義された SQLSATE 値を返します。 SQLSTATE は、アプリケーションで独立して宣言できる 5 文字のフィールドですが、宣言された SQLCA にも存在します。 次の表に OpenESQL 文で返すことができる SQLSTATE 値を一覧表示します。
SQLSTATE で返される値は、2 文字のクラス値とそれに続く 3 文字のサブクラス値で構成されます。 クラス値「01」は警告を示し、SQLCODE が 1 に設定されます。クラス「IM」を除き、「01」以外のクラス値はエラーを示し、SQLCODE が -100000 に設定されます。クラス「IM」は ODBC 自体の実装に由来する警告とエラーに固有です。 任意のクラスのサブクラス値「000」は、そのクラスで実装時に定義された条件を表します。 クラスとサブクラス値の割り当ては、ANSI SQ L-92 で定義されています。
注:
通常、関数が正常に実行された場合は、SQLCODE が 0 に設定されます。SQLSTATE が 00000 の場合 も正常終了したことを示します。
SQLSTATE | エラー |
---|---|
01000 | 一般的な警告 |
01002 | 切断エラー |
01004 | データが切り捨てられた。 |
01006 | 権限が取り消されていない。 |
01S00 | 無効な接続文字列属性 |
01S01 | 行のエラー |
01S02 | オプション値が変更された。 |
01S03 | 更新または削除された行がない。 |
01S04 | 更新または削除された行が複数ある。 |
01S05 | キャンセルが、SQL_CLOSE オプションを使用した SQLFreeStmt として処理された。 |
01S06 | 結果集合が最初の行セットを返す前に取り込もうとした。 |
07001 | パラメーターの数が誤っている。 |
07006 | 制限されたデータ型属性に関する違反 |
07S01 | デフォルトパラメーターの使用が無効である。 |
08001 | データソースに接続できない。 |
08002 | 接続が使用中である。 |
08003 | 接続が開いていない。 |
08004 | データソースが接続の確立を拒絶した。 |
08007 | トランザクション中に接続に障害が発生した。 |
08S01 | 通信リンクに障害が発生した。 |
21S01 | 挿入値リストが列リストと一致しない。 |
21S02 | 導出表の次数が列リストと一致しない。 |
22001 | 文字列データの右側が切り捨てられた。 |
22002 | 必要なインジケーター変数が指定されていない。 |
22003 | 数値が範囲外である。 |
22005 | 割り当てエラー |
22008 | 日付時刻フィールドのオーバーフロー |
22012 | ゼロで除算している。 |
22026 | 文字列データ。長さの不一致。 |
23000 | 整合性の制約違反 |
24000 | カーソルの状態が無効。 |
25000 | トランザクションの状態が無効。 |
28000 | 権限指定が無効。 |
34000 | カーソル名が無効。 |
37000 | 構文エラーまたはアクセス違反 |
3C000 | カーソル名が重複している。 |
42000 | 構文エラーまたはアクセス違反 |
70100 | 操作の中断。 |
IM001 | ドライバがこの関数をサポートしていない。 |
IM002 | データソース名が見つからず、デフォルトのドライバが指定されていない。 |
IM003 | 指定されたドライバをロードできなかった。 |
IM004 | ドライバの SQLAllocEnv でエラーが発生した。 |
IM005 | ドライバの SQLAllocConnect でエラーが発生した。 |
IM006 | ドライバの SQLSetConnect-Option でエラーが発生した。 |
IM007 | データソースまたはドライバが指定されていない。ダイアログは使用不可。 |
IM008 | ダイアログが失敗した。 |
IM009 | 変換ファイル .dll をロードできない。 |
IM010 | データソース名が長すぎる。 |
IM011 | ドライバ名が長すぎる。 |
IM012 | DRIVER キーワード構文エラー |
IM013 | トレースファイルエラー |
S0001 | ベーステーブルまたはビューがすでに存在しています |
S0002 | ベーステーブルが見つからない。 |
S0011 | 索引がすでに存在している。 |
S0012 | 索引が見つからない。 |
S0021 | 列がすでに存在している。 |
S0022 | 列が見つからない。 |
S0023 | 列のデフォルトがない。 |
S1000 | 一般的なエラー |
S1001 | メモリの割り当てに失敗した。 |
S1002 | 列番号が無効。 |
S1003 | プログラムの種類が範囲外である。 |
S1004 | SQL データ型が範囲外である。 |
S1008 | 操作がキャンセルされた。 |
S1009 | 引数の値が無効。 |
S1010 | 関数シーケンスエラー |
S1011 | この時点での操作が無効である。 |
S1012 | 指定されたトランザクション操作コードが無効である。 |
S1015 | カーソル名が使用できない。 |
S1090 | 文字列またはバッファー長が無効である。 |
S1091 | 記述子の種類が範囲外である。 |
S1092 | オプションの種類が範囲外である。 |
S1093 | パラメーター番号が無効である。 |
S1095 | 関数の種類が範囲外である。 |
S1096 | 情報の種類が範囲外である。 |
S1097 | 列の種類が範囲外である。 |
S1098 | 範囲の種類が範囲外である。 |
S1099 | ヌル化の種類が範囲外である。 |
S1100 | 固有オプションの種類が範囲外である。 |
S1101 | 精度オプションの種類が範囲外である。 |
S1103 | 方向オプションが範囲外である。 |
S1105 | パラメーターの種類が無効。 |
S1106 | 取り込みの種類が範囲外である。 |
S1107 | 行の値が範囲外である。 |
S1108 | 並行オプションが範囲外である。 |
S1109 | カーソルの位置が無効である。 |
S1110 | ドライバの終了が無効である。 |
S1111 | ブックマークの値が無効である。 |
S1C00 | ドライバが機能しない。 |
S1T00 | タイムアウトした。 |