付録 A: ODBC エラー コード
このトピックでは、ODBC 3 の SQLSTATE 値について説明します。x。 ODBC 3 の詳細については、以下を参照してください。x SQLSTATE 値については、「 SQLSTATE マッピング」を参照してください。
SQLGetDiagRec または SQLGetDiagField は、Open Group データ管理 で定義されている SQLSTATE 値を返します。構造化照会言語 (SQL)、バージョン 2 (1995 年 3 月)。 SQLSTATE 値は、5 文字を含む文字列です。 次の表に、ドライバーが SQLGetDiagRec に対して返すことができる SQLSTATE 値を示します。
SQLSTATE に対して返される文字列値は、2 文字のクラス値の後に 3 文字のサブクラス値が続きます。 クラス値 "01" は警告を示し、SQL_SUCCESS_WITH_INFOのリターン コードが伴います。 クラス "IM" を除く "01" 以外のクラス値はエラーを示し、戻り値SQL_ERRORが伴います。 クラス "IM" は、ODBC 自体の実装から派生した警告とエラーに固有です。 任意のクラスのサブクラス値 "000" は、その SQLSTATE にサブクラスがないことを示します。 クラス値とサブクラス値の割り当ては、SQL-92 によって定義されます。
Note
関数の正常な実行は通常、戻り値SQL_SUCCESSによって示されますが、SQLSTATE 00000 も成功を示します。
SQLSTATE | エラー | から返すことができます |
---|---|---|
01000 | 一般的な警告 | 次を除くすべての ODBC 関数: SQLError SQLGetDiagField SQLGetDiagRec |
01001 | カーソル操作の競合 | SQLExecDirect SQLExecute SQLParamData SQLSetPos |
01002 | 切断エラー | SQLDisconnect |
01003 | set 関数で NULL 値が削除される | SQLExecDirect SQLExecute SQLParamData |
01004 | 文字列データ(右切り捨て) | SQLBrowseConnect SQLBulkOperations SQLColAttribute SQLDataSources SQLDescribeCol SQLDriverConnect SQLDrivers SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLGetConnectAttr SQLGetCursorName SQLGetData SQLGetDescField SQLGetDescRec SQLGetEnvAttr SQLGetInfo SQLGetStmtAttr SQLNative Sql SQLParamData SQLPutData SQLSetCursorName |
01006 | 特権が取り消されない | SQLExecDirect SQLExecute SQLParamData |
01007 | 特権が付与されていません | SQLExecDirect SQLExecute SQLParamData |
01S00 | 接続文字列属性が無効です | SQLBrowseConnect SQLDriverConnec |
01S01 | 行のエラー | SQLBulkOperations SQLExtendedFetch SQLSetPos |
01S02 | オプション値の変更 | SQLBrowseConnect SQLConnect SQLDriverConnect SQLExecDirect SQLExecute SQLParamData SQLPrepare SQLSetConnectAttr SQLSetDescField SQLSetEnvAttr SQLSetStmtAttr |
01S06 | 結果セットが最初の行セットを返す前にフェッチを試みる | SQLExtendedFetch SQLFetchScroll |
01S07 | 小数部の切り捨て | SQLBulkOperations SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLGetData SQLParamData SQLSetPos |
01S08 | ファイル DSN の保存中にエラーが発生しました | SQLDriverConnect |
01S09 | キーワードが無効です | SQLDriverConnect |
07001 | パラメーターの数が間違っています | SQLExecDirect SQLExecute |
07002 | COUNT フィールドが正しくありません | SQLExecDirect SQLExecute SQLParamData |
07005 | カーソル指定ではない準備済みステートメント | SQLColAttribute SQLDescribeCol |
07006 | 制限付きデータ型属性違反 | SQLBindCol SQLBindParameter SQLBulkOperations SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLGetData SQLParamData SQLPutData SQLSetPos |
07009 | 記述子インデックスが無効です | SQLBindCol SQLBindParameter SQLBulkOperations SQLColAttribute SQLDescribeCol SQLDescribeParam SQLFetch SQLFetchScroll SQLGetData SQLGetDescField SQLGetDescRec SQLParamData SQLSetDescField SQLSetDescRecSQLSetPos |
07S01 | 既定のパラメーターの使用が無効です | SQLExecDirect SQLExecute SQLParamData SQLPutData |
08001 | クライアントが接続を確立できない | SQLBrowseConnect SQLConnect SQLDriverConnect |
08002 | 使用中の接続名 | SQLBrowseConnect SQLConnect SQLDriverConnect SQLSetConnectAttr |
08003 | 接続が開かない | SQLAllocHandle SQLDisconnect SQLEndTran SQLGetConnectAttr SQLGetInfo SQLNativeSql SQLSetConnectAttr |
08004 | サーバーが接続を拒否しました | SQLBrowseConnect SQLConnect SQLDriverConnect |
08007 | トランザクション中の接続エラー | SQLEndTran |
08S01 | 通信リンクエラー | SQLBrowseConnect SQLColumnPrivileges SQLColumns SQLConnect SQLCopyDesc SQLDescribeCol SQLDescribeParam SQLDriverConnect SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLForeignKeys SQLGetConnectAttr SQLGetData SQLGetDescField SQLGetDescRec SQLGetFunctions SQLGetInfo SQLGetTypeInfo SQLMoreResults SQLNativeSql SQLNumParams SQLNumResultCols SQLParamData SQLPrepare SQLPrimaryKeys SQLProcedureColumns SQLProcedures SQLPutData SQLSetConnectAttr SQLSetDescField SQLSetDescRec SQLSetEnvAttr SQLSetStmtAttr SQLSpecialColumns SQLStatistics SQLTablePrivileges SQLTables |
21S01 | 値リストの挿入が列リストと一致しない | SQLExecDirect SQLPrepare |
21S02 | 派生テーブルの次数が列リストと一致しない | SQLBulkOperations SQLExecDirect SQLExecute SQLParamData SQLPrepare SQLSetPos |
22001 | 文字列データ(右切り捨て) | SQLBulkOperations SQLExecDirect SQLExecute SQLFetch SQLFetchScroll SQLParamData SQLPutData SQLSetDescField SQLSetPos |
22002 | インジケーター変数は必須ですが、指定されていません | SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLGetData SQLParamData |
22003 | 範囲外の数値 | SQLBulkOperations SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLGetData SQLGetInfo SQLParamData SQLPutData SQLSetPos |
22007 | datetime 形式が無効です | SQLBulkOperations SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLGetData SQLParamData SQLPutData SQLSetPos |
22008 | Datetime フィールドオーバーフロー | SQLBulkOperations SQLExecDirect QLParamData SQLPutData |
22012 | 0 で除算しました | SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLGetData SQLPutData |
22015 | 間隔フィールドのオーバーフロー | SQLBulkOperations SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLGetData SQLParamData SQLPutData SQLSetPos |
22018 | キャスト指定の文字値が無効です | SQLBulkOperations SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLGetData SQLParamData SQLPutData SQLSetPos |
22019 | エスケープ文字が無効です | SQLExecDirect SQLExecute SQLPrepare |
22025 | エスケープ シーケンスが無効です | SQLExecDirect SQLExecute SQLPrepare |
22026 | 文字列データの長さが合致しません | SQLParamData |
23000 | 整合性制約違反 | SQLBulkOperations SQLExecDirect SQLExecute SQLParamData SQLSetPos |
24000 | カーソル状態が無効 | SQLBulkOperations SQLCloseCursor SQLColumnPrivileges SQLColumns SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLForeignKeys SQLGetData SQLGetStmtAttr SQLGetTypeInfo SQLNativeSql SQLPrepare SQLPrimaryKeys SQLProcedureColumns SQLProcedures SQLSetConnectAttr SQLSetCursorName SQLSetPos SQLSetStmtAttr SQLSpecialColumns SQLStatistics SQLTablePrivileges SQLTables |
25000 | トランザクション状態が無効 | SQLDisconnect |
25S01 | トランザクションの状態 | SQLEndTran |
25S02 | トランザクションがまだアクティブです | SQLEndTran |
25S03 | トランザクションがロールバックされる | SQLEndTran |
28000 | 承認指定が無効です | SQLBrowseConnect SQLConnect SQLDriverConnect |
34000 | カーソル名が無効 | SQLExecDirect SQLPrepare SQLSetCursorName |
3C000 | 重複するカーソル名 | SQLSetCursorName |
3D000 | カタログ名が無効です | SQLExecDirect SQLPrepare SQLSetConnectAttr |
3F000 | スキーマ名が無効です | SQLExecDirect SQLPrepare |
40001 | シリアル化エラー | SQLBulkOperations SQLColumnPrivileges SQLColumns SQLEndTran SQLExecDirect SQLExecute SQLFetch SQLFetchScroll SQLForeignKeys SQLGetTypeInfo SQLMoreResults SQLParamData SQLPrimaryKeys SQLProcedureColumns SQLProcedures SQLSetPos SQLSpecialColumns SQLStatistics SQLTablePrivileges SQLTables |
40002 | 整合性制約違反 | SQLEndTran |
40003 | ステートメントの完了が不明です | SQLBulkOperations SQLColumnPrivileges SQLColumns SQLExecDirect SQLExecute SQLFetch SQLFetchScroll SQLForeignKeys SQLGetTypeInfo SQLMoreResults SQLPrimaryKeys SQLProcedureColumns SQLProcedures SQLParamData SQLSetPos SQLSpecialColumns SQLStatistics SQLTablePrivileges SQLTables |
42000 | 構文エラーまたはアクセス違反 | SQLBulkOperations SQLExecDirect SQLExecute SQLParamData SQLPrepare SQLSetPos |
42S01 | ベース テーブルまたはビューが既に存在する | SQLExecDirect SQLPrepare |
42S02 | ベース テーブルまたはビューが見つかりません | SQLExecDirect SQLPrepare |
42S11 | インデックスは既に存在します | SQLExecDirect SQLPrepare |
42S12 | インデックスが見つかりません | SQLExecDirect SQLPrepare |
42S21 | 列は既に存在します | SQLExecDirect SQLPrepare |
42S22 | 列が見つかりません | SQLExecDirect SQLPrepare |
44000 | WITH CHECK OPTION 違反 | SQLBulkOperations SQLExecDirect SQLExecute SQLParamData SQLSetPos |
HY000 | 一般的なエラー | 次を除くすべての ODBC 関数。 SQLError SQLGetDiagField SQLGetDiagRec |
HY001 | メモリ割り当てエラー | 次を除くすべての ODBC 関数。 SQLError SQLGetDiagField SQLGetDiagRec |
HY003 | アプリケーション バッファーの種類が無効です | SQLBindCol SQLBindParameter SQLGetData |
HY004 | SQL データ型が無効です | SQLBindParameter SQLGetTypeInfo |
HY007 | 関連付けられたステートメントが準備されていません | SQLCopyDesc SQLGetDescField SQLGetDescRec |
HY008 | 操作が取り消されました | 非同期的に処理できるすべての ODBC 関数: SQLBrowseConnect SQLBulkOperations SQLColAttribute SQLColumnPrivileges SQLColumns SQLConnect SQLDescribeCol SQLDescribeParam SQLDisconnect SQLDriverConnect SQLEndTran SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLForeignKeys SQLGetData SQLGetTypeInfo SQLMoreResults SQLNumParams SQLNumResultCols SQLParamData SQLPrepare SQLPrimaryKeys SQLProcedureColumns SQLProcedures SQLPutData SQLSetConnectAttr SQLSetPos SQLSpecialColumns SQLStatistics SQLTablePrivileges SQLTables |
HY009 | null ポインターの使用が無効です | SQLAllocHandle SQLBindParameter SQLBulkOperations SQLColumnPrivileges SQLColumns SQLExecDirect SQLForeignKeys SQLGetCursorName SQLGetData SQLGetFunctions SQLNativeSql SQLPrepare SQLPrimaryKeys SQLProcedureColumns SQLProcedures SQLPutData SQLSetConnectAttr SQLSetCursorName SQLSetEnvAttr SQLSetStmtAttr SQLSpecialColumns SQLStatistics SQLTablePrivileges SQLTables |
HY010 | 関数シーケンス エラー | SQLAllocHandle SQLBindCol SQLBindParameter SQLBulkOperations SQLCloseCursor SQLColAttribute SQLColumnPrivileges SQLColumns SQLCopyDesc SQLDescribeCol SQLDescribeParam SQLDisconnect SQLEndTran SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLForeignKeys SQLFreeHandle SQLFreeStmt SQLGetConnectAttr SQLGetCursorName SQLGetData SQLGetDescField SQLGetDescRec SQLGetFunctions SQLGetStmtAttr SQLGetTypeInfo SQLMoreResults SQLNumParams SQLNumResultCols SQLParamData SQLPrepare SQLPrimaryKeys SQLProcedureColumns SQLProcedures SQLPutData SQLRowCount SQLSetConnectAttr SQLSetCursorName SQLSetDescField SQLSetEnvAttr SQLSetDescRec SQLSetPos SQLSetStmtAttr SQLSpecialColumns SQLStatistics SQLTablePrivileges SQLTables |
HY011 | 属性を今すぐ設定できない | SQLBulkOperations SQLParamData QLSetPos SQLSetStmtAttr |
HY012 | トランザクション操作コードが無効です | SQLEndTran |
HY013 | メモリ管理エラー | 次を除くすべての ODBC 関数: SQLGetDiagField SQLGetDiagRec |
HY014 | ハンドルの数の制限を超えました | SQLAllocHandle |
HY015 | 使用できるカーソル名がありません | SQLGetCursorName |
HY016 | 実装行記述子を変更できません | SQLCopyDesc SQLSetDescField SQLSetDescRec |
HY017 | 自動的に割り当てられた記述子ハンドルの使用が無効です | SQLFreeHandle SQLSetStmtAttr |
HY018 | サーバーがキャンセル要求を拒否しました | SQLCancel |
HY019 | 一部で送信される非文字データと非バイナリ データ | SQLPutData |
HY020 | null 値の連結を試みます | SQLPutData |
HY021 | 一貫性のない記述子情報 | SQLBindParameter SQLCopyDesc SQLGetDescField SQLSetDescField SQLSetDescRec |
HY024 | 属性値が無効です | SQLSetConnectAttr SQLSetEnvAttr SQLSetStmtAttr |
HY090 | 文字列またはバッファーの長さが無効です | SQLBindCol SQLBindParameter SQLBrowseConnect SQLBulkOperations SQLColAttribute SQLColumnPrivileges SQLColumns SQLConnect SQLDataSources SQLDescribeCol SQLDriverConnect SQLDrivers SQLExecDirect SQLExecute SQLFetch SQLFetchScroll SQLForeignKeys SQLGetConnectAttr SQLGetCursorName SQLGetData SQLGetDescField SQLGetInfo SQLGetStmtAttr SQLNativeSql SQLParamData SQLPrepare SQLPrimaryKeys SQLProcedureColumns SQLProcedures SQLPutData SQLSetConnectAttr SQLSetCursorName SQLSetDescField SQLSetDescRec SQLSetEnvAttr SQLSetStmtAttr SQLSetPos SQLSpecialColumns SQLStatistics SQLTablePrivileges SQLTables |
HY091 | 記述子フィールド識別子が無効です | SQLColAttribute SQLGetDescField SQLSetDescField |
HY092 | 属性/オプション識別子が無効です | SQLAllocHandle QLBulkOperations SQLCopyDesc SQLDriverConnect SQLEndTran SQLFreeStmt SQLGetConnectAttr SQLGetEnvAttr QLParamData SQLSetConnectAttr SQLSetDescField SQLSetEnvAttr SQLSetPos SQLSetStmtAttr |
HY095 | 関数の種類が範囲外 | SQLGetFunctions |
HY096 | 無効な情報の種類 | SQLGetInfo |
HY097 | 列の種類が範囲外 | SQLSpecialColumns |
HY098 | スコープの種類が範囲外 | SQLSpecialColumns |
HY099 | Null 許容型が範囲外 | SQLSpecialColumns |
HY100 | 一意性オプションの種類が範囲外 | SQLStatistics |
HY101 | 精度オプションの種類が範囲外 | SQLStatistics |
HY103 | 無効な取得コード | SQLDataSources SQLDrivers |
HY104 | 有効桁数またはスケール値が無効です | SQLBindParameter |
HY105 | パラメーターの型が無効です | SQLBindParameter SQLExecDirect SQLExecute SQLParamData SQLSetDescField |
HY106 | フェッチの種類が範囲外 | SQLExtendedFetch SQLFetchScroll |
HY107 | 行の値が範囲外 | SQLExtendedFetch SQLFetch SQLFetchScroll SQLSetPos |
HY109 | カーソル位置が無効です | SQLExecDirect SQLExecute SQLGetData SQLGetStmtAttr SQLNativeSql SQLParamData SQLSetPos |
HY110 | ドライバーの入力候補が無効です | SQLDriverConnect |
HY111 | ブックマークの値が無効です | SQLExtendedFetch SQLFetchScroll |
HYC00 | 省略可能な機能が実装されていません | SQLBindCol SQLBindParameter SQLBulkOperations SQLColAttribute SQLColumnPrivileges SQLColumns SQLDriverConnect SQLEndTran SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLForeignKeys SQLGetConnectAttr SQLGetData SQLGetEnvAttr SQLGetInfo SQLGetStmtAttr SQLGetTypeInfo SQLParamData SQLPrepare SQLPrimaryKeys SQLProcedureColumns SQLProcedures SQLSetConnectAttr SQLSetEnvAttr SQLSetPos SQLSetStmtAttr SQLSpecialColumns SQLStatistics SQLTablePrivileges SQLTables |
HYT00 | タイムアウトに達しました | SQLBrowseConnect SQLBulkOperations SQLColumnPrivileges SQLColumns SQLConnect SQLDriverConnect SQLExecDirect SQLExecute SQLExtendedFetch SQLForeignKeys SQLGetTypeInfo SQLParamData SQLPrepare SQLPrimaryKeys SQLProcedureColumns SQLProcedures SQLSetPos SQLSpecialColumns SQLStatistics SQLTablePrivileges SQLTables |
HYT01 | 接続のタイムアウト | 次を除くすべての ODBC 関数。 SQLDrivers SQLDataSources SQLGetEnvAttr SQLSetEnvAttr |
IM001 | ドライバーは、この関数をサポートしていません | 次を除くすべての ODBC 関数。 SQLAllocHandle SQLDataSources SQLDrivers SQLFreeHandle SQLGetFunctions |
IM002 | データ ソース名が見つからず、既定のドライバーが指定されていません | SQLBrowseConnect SQLConnect SQLDriverConnect |
IM003 | 指定されたドライバーを読み込めませんでした | SQLBrowseConnect SQLConnect SQLDriverConnect |
IM004 | SQL_HANDLE_ENVのドライバーの SQLAllocHandle が失敗しました | SQLBrowseConnect SQLConnect SQLDriverConnect |
IM005 | SQL_HANDLE_DBCのドライバーの SQLAllocHandle が失敗しました | SQLBrowseConnect SQLConnect SQLDriverConnect |
IM006 | ドライバーの SQLSetConnectAttr が失敗しました | SQLBrowseConnect SQLConnect SQLDriverConnect |
IM007 | データ ソースまたはドライバーが指定されていない。ダイアログは禁止されています | SQLDriverConnect |
IM008 | ダイアログが失敗しました | SQLDriverConnect |
IM009 | 翻訳 DLL を読み込むことができません | SQLBrowseConnect SQLConnect SQLDriverConnect SQLSetConnectAttr |
IM010 | データ ソース名が長すぎます | SQLBrowseConnect SQLConnect SQLDriverConnect |
IM011 | ドライバー名が長すぎます | SQLBrowseConnect SQLDriverConnect |
IM012 | DRIVER キーワード構文エラー | SQLBrowseConnect SQLDriverConnect |
IM013 | トレース ファイル エラー | すべての ODBC 関数。 |
IM014 | ファイル DSN の名前が無効です | SQLDriverConnect |
IM015 | 破損したファイル データ ソース | SQLDriverConnect |