OpenESQL 文は、X/Open および SQL Access Group SQL CAE 規格 (1992) で定義されたデータベース提供の SQLSATE 値を返します。SQLSTATE は、アプリケーションで独立して宣言できる 5 文字のフィールドですが、宣言された SQLCA (ある場合) にも存在します。次の表に、OpenESQL 文によって返される最も一般的な SQLSTATE 値を示します。より包括的なリストについては、DBMS ベンダーが提供するドキュメントを参照してください。
SQLSTATE で返される値は、2 文字のクラス値およびそれに続く 3 文字のサブクラス値で構成されます。クラス値「01」は警告を示し、SQLCODE が 1 になります。クラス「IM」を除き、「01」以外のクラス値はエラーを示し、SQLCODE が -10000 になります。クラス「IM」は、ODBC 自身の実装から派生する警告およびエラーに固有のものです。任意のクラスのサブクラス値「000」は、そのクラスで実装時に定義された状態を表します。クラスおよびサブクラス値の割り当ては、ANSI SQL-92 で定義されています。
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 | NULLABLE タイプが有効範囲を超えています |
S1100 | 一意オプションのタイプが有効範囲を超えています |
S1101 | 精度オプションのタイプが有効範囲を超えています |
S1103 | 方向オプションが有効範囲を超えています |
S1105 | パラメーターのタイプが無効です |
S1106 | 取り込みタイプが有効範囲を超えています |
S1107 | 行の値が有効範囲を超えています |
S1108 | 同時実行オプションが有効範囲を超えています |
S1109 | カーソルの位置が無効です |
S1110 | ドライバーの完了方法が無効です |
S1111 | ブックマーク値が無効です |
S1C00 | 無効なドライバーです |
S1T00 | タイムアウトになりました |