Приложение А. Коды ошибок ODBC

В этом разделе рассматриваются значения SQLSTATE для ODBC 3.x. Дополнительные сведения об ODBC 3.Значения x SQLSTATE см. в разделе "Сопоставления SQLSTATE".

SQLGetDiagRec или SQLGetDiagField возвращает значения SQLSTATE, как определено open Group Data Management: Структурированный язык запросов (SQL), версия 2 (март 1995 г.). Значения SQLSTATE — это строки, содержащие пять символов. В следующей таблице перечислены значения SQLSTATE, которые драйвер может возвращать для SQLGetDiagRec.

Значение строки символа, возвращаемое для SQLSTATE, состоит из значения класса двух символов, за которым следует значение подкласса с тремя символами. Значение класса "01" указывает предупреждение и сопровождается возвращаемым кодом SQL_SUCCESS_WITH_INFO. Значения классов, отличные от "01", за исключением класса "IM", указывают на ошибку и сопровождаются возвращаемым значением SQL_ERROR. Класс "IM" предназначен для предупреждений и ошибок, производных от реализации САМОГО ODBC. Значение подкласса "000" в любом классе указывает, что для этого SQLSTATE нет подкласса. Назначение значений класса и подклассов определяется SQL-92.

Заметка

Хотя успешное выполнение функции обычно указывается возвращаемым значением SQL_SUCCESS, SQLSTATE 00000 также указывает на успех.

SQLSTATE Ошибка Можно вернуть из
01000 Общее предупреждение Все функции ODBC, кроме следующих:

Sqlerror

SQLGetDiagField

SQLGetDiagRec
01001 Конфликт операций курсора SQLExecDirect

SQLExecute

SQLParamData

Sqlsetpos
01002 Ошибка отключения SQLDisconnect
01003 Значение NULL, устраненное в функции set 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 Деление по нулю 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 Недопустимый escape-символ SQLExecDirect

SQLExecute

SQLPrepare
22025 Недопустимая последовательность escape-адресов SQLExecDirect

SQLExecute

SQLPrepare
22026 Строковые данные, несовпадение длины SQLParamData
23 000 Нарушение ограничений целостности 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
42 000 Синтаксическая ошибка или нарушение доступа 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 Тип параметра Uniqueness вне диапазона 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 Ошибка SQLAllocHandle драйвера на SQL_HANDLE_ENV SQLBrowseConnect

SQLConnect

SQLDriverConnect
IM005 Сбой sqlAllocHandle драйвера на SQL_HANDLE_DBC 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