Apêndice A: Códigos de erro ODBC
Este tópico discute valores SQLSTATE para ODBC 3. x. Para obter mais informações sobre o ODBC 3. x valores SQLSTATE, consulte Mapeamentos SQLSTATE.
SQLGetDiagRec ou SQLGetDiagField retorna valores SQLSTATE conforme definido pelo Open Group Gerenciamento de Dados: linguagem SQL (SQL), Versão 2 (março de 1995). Os valores SQLSTATE são cadeias de caracteres que contêm cinco caracteres. A tabela a seguir lista valores SQLSTATE que um driver pode retornar para SQLGetDiagRec.
O valor da cadeia de caracteres retornado para um SQLSTATE consiste em um valor de classe de dois caracteres seguido por um valor de subclasse de três caracteres. Um valor de classe de "01" indica um aviso e é acompanhado por um código de retorno de SQL_SUCCESS_WITH_INFO. Valores de classe diferentes de "01", exceto a classe "IM", indicam um erro e são acompanhados por um valor retornado de SQL_ERROR. A classe "IM" é específica para avisos e erros que derivam da implementação do próprio ODBC. O valor de subclasse "000" em qualquer classe indica que não há subclasse para esse SQLSTATE. A atribuição de valores de classe e subclasse é definida pelo SQL-92.
Observação
Embora a execução bem-sucedida de uma função normalmente seja indicada por um valor retornado de SQL_SUCCESS, o SQLSTATE 00000 também indica êxito.
SQLSTATE | Erro | Pode ser retornado de |
---|---|---|
01000 | Aviso geral | Todas as funções ODBC, exceto: Sqlerror SQLGetDiagField SQLGetDiagRec |
01001 | Conflito de operação do cursor | SQLExecDirect SQLExecute SQLParamData SQLSetPos |
01002 | Erro de desconexão | Sqldisconnect |
01003 | Valor NULL eliminado na função set | SQLExecDirect SQLExecute SQLParamData |
01004 | Dados de cadeia de caracteres, truncados à direita | 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 | Privilégio não revogado | SQLExecDirect SQLExecute SQLParamData |
01007 | Privilégio não concedido | SQLExecDirect SQLExecute SQLParamData |
01S00 | Atributo de cadeia de conexão inválido | SQLBrowseConnect SQLDriverConnec |
01S01 | Erro na linha | SQLBulkOperations Sqlextendedfetch SQLSetPos |
01S02 | Valor da opção alterado | SQLBrowseConnect SQLConnect SQLDriverConnect SQLExecDirect SQLExecute SQLParamData SQLPrepare SQLSetConnectAttr SQLSetDescField SQLSetEnvAttr SQLSetStmtAttr |
01S06 | Tentativa de busca antes que o conjunto de resultados retornasse o primeiro conjunto de linhas | Sqlextendedfetch SQLFetchScroll |
01S07 | Truncamento fracionário | SQLBulkOperations SQLExecDirect SQLExecute Sqlextendedfetch SQLFetch SQLFetchScroll SQLGetData SQLParamData SQLSetPos |
01S08 | Erro ao salvar o DSN do Arquivo | SQLDriverConnect |
01S09 | Palavra-chave inválida | SQLDriverConnect |
07001 | Número incorreto de parâmetros | SQLExecDirect SQLExecute |
07002 | Campo COUNT incorreto | SQLExecDirect SQLExecute SQLParamData |
07005 | Instrução preparada não é uma especificação de cursor | SQLColAttribute SQLDescribeCol |
07006 | Violação de atributo de tipo de dados restrito | SQLBindCol SQLBindParameter SQLBulkOperations SQLExecDirect SQLExecute Sqlextendedfetch SQLFetch SQLFetchScroll SQLGetData SQLParamData SQLPutData SQLSetPos |
07009 | Índice de descritor inválido | SQLBindCol SQLBindParameter SQLBulkOperations SQLColAttribute SQLDescribeCol SQLDescribeParam SQLFetch SQLFetchScroll SQLGetData SQLGetDescField SQLGetDescRec SQLParamData SQLSetDescField SQLSetDescRecSQLSetPos |
07S01 | Uso inválido do parâmetro padrão | SQLExecDirect SQLExecute SQLParamData SQLPutData |
08001 | O cliente não consegue estabelecer a conexão | SQLBrowseConnect SQLConnect SQLDriverConnect |
08002 | Nome da conexão em uso | SQLBrowseConnect SQLConnect SQLDriverConnect SQLSetConnectAttr |
08003 | Conexão não aberta | SQLAllocHandle Sqldisconnect SQLEndTran SQLGetConnectAttr SQLGetInfo SQLNativeSql SQLSetConnectAttr |
08004 | O servidor rejeitou a conexão | SQLBrowseConnect SQLConnect SQLDriverConnect |
08007 | Falha de conexão durante a transação | SQLEndTran |
08S01 | Falha no link de comunicação | 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 | Inserir lista de valores não corresponde à lista de colunas | SQLExecDirect SQLPrepare |
21S02 | O grau da tabela derivada não corresponde à lista de colunas | SQLBulkOperations SQLExecDirect SQLExecute SQLParamData SQLPrepare SQLSetPos |
22001 | Dados de cadeia de caracteres, truncados à direita | SQLBulkOperations SQLExecDirect SQLExecute SQLFetch SQLFetchScroll SQLParamData SQLPutData SQLSetDescField SQLSetPos |
22002 | Variável de indicador necessária, mas não fornecida | SQLExecDirect SQLExecute Sqlextendedfetch SQLFetch SQLFetchScroll SQLGetData SQLParamData |
22003 | Valor numérico fora do intervalo | SQLBulkOperations SQLExecDirect SQLExecute Sqlextendedfetch SQLFetch SQLFetchScroll SQLGetData SQLGetInfo SQLParamData SQLPutData SQLSetPos |
22007 | Formato de datetime inválido | SQLBulkOperations SQLExecDirect SQLExecute Sqlextendedfetch SQLFetch SQLFetchScroll SQLGetData SQLParamData SQLPutData SQLSetPos |
22008 | Estouro do campo datetime | SQLBulkOperations SQLExecDirect QLParamData SQLPutData |
22012 | Divisão por zero | SQLExecDirect SQLExecute Sqlextendedfetch SQLFetch SQLFetchScroll SQLGetData SQLPutData |
22015 | Estouro de campo de intervalo | SQLBulkOperations SQLExecDirect SQLExecute Sqlextendedfetch SQLFetch SQLFetchScroll SQLGetData SQLParamData SQLPutData SQLSetPos |
22018 | Valor de caractere inválido para especificação de conversão | SQLBulkOperations SQLExecDirect SQLExecute Sqlextendedfetch SQLFetch SQLFetchScroll SQLGetData SQLParamData SQLPutData SQLSetPos |
22019 | Caractere de escape inválido | SQLExecDirect SQLExecute SQLPrepare |
22025 | Sequência de escape inválida | SQLExecDirect SQLExecute SQLPrepare |
22026 | Incompatibilidade de comprimento de dados String | SQLParamData |
23000 | Violação da restrição de integridade | SQLBulkOperations SQLExecDirect SQLExecute SQLParamData SQLSetPos |
24.000 | Estado de cursor inválido | 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 | Estado de transação inválido | Sqldisconnect |
25S01 | Estado da transação | SQLEndTran |
25S02 | A transação ainda está ativa | SQLEndTran |
25S03 | A transação é revertida | SQLEndTran |
28000 | Especificação de autorização inválida | SQLBrowseConnect SQLConnect SQLDriverConnect |
34000 | Nome de cursor inválido | SQLExecDirect SQLPrepare Sqlsetcursorname |
3C000 | Nome do cursor duplicado | Sqlsetcursorname |
3D000 | Nome de catálogo inválido | SQLExecDirect SQLPrepare SQLSetConnectAttr |
3F000 | Nome de esquema inválido | SQLExecDirect SQLPrepare |
40001 | Falha na serialização | SQLBulkOperations SQLColumnPrivileges SQLColumns SQLEndTran SQLExecDirect SQLExecute SQLFetch SQLFetchScroll SQLForeignKeys SQLGetTypeInfo SQLMoreResults SQLParamData SQLPrimaryKeys SQLProcedureColumns SQLProcedures SQLSetPos SQLSpecialColumns SQLStatistics SQLTablePrivileges SQLTables |
40002 | Violação da restrição de integridade | SQLEndTran |
40003 | Conclusão da instrução desconhecida | SQLBulkOperations SQLColumnPrivileges SQLColumns SQLExecDirect SQLExecute SQLFetch SQLFetchScroll SQLForeignKeys SQLGetTypeInfo SQLMoreResults SQLPrimaryKeys SQLProcedureColumns SQLProcedures SQLParamData SQLSetPos SQLSpecialColumns SQLStatistics SQLTablePrivileges SQLTables |
42000 | Erro de sintaxe ou violação de acesso | SQLBulkOperations SQLExecDirect SQLExecute SQLParamData SQLPrepare SQLSetPos |
42S01 | A tabela ou exibição base já existe | SQLExecDirect SQLPrepare |
42S02 | Tabela base ou exibição não encontrada | SQLExecDirect SQLPrepare |
42S11 | O índice já existe | SQLExecDirect SQLPrepare |
42S12 | Índice não encontrado | SQLExecDirect SQLPrepare |
42S21 | A coluna já existe | SQLExecDirect SQLPrepare |
42S22 | Coluna não encontrada | SQLExecDirect SQLPrepare |
44000 | Violação COM OPÇÃO DE VERIFICAÇÃO | SQLBulkOperations SQLExecDirect SQLExecute SQLParamData SQLSetPos |
HY000 | Erro geral | Todas as funções ODBC, exceto: Sqlerror SQLGetDiagField SQLGetDiagRec |
HY001 | Erro de alocação de memória | Todas as funções ODBC, exceto: Sqlerror SQLGetDiagField SQLGetDiagRec |
HY003 | Tipo de buffer de aplicativo inválido | SQLBindCol SQLBindParameter SQLGetData |
HY004 | Tipo de dados SQL inválido | SQLBindParameter SQLGetTypeInfo |
HY007 | A instrução associada não está preparada | SQLCopyDesc SQLGetDescField SQLGetDescRec |
HY008 | Operação cancelada | Todas as funções ODBC que podem ser processadas de forma assíncrona: 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 | Uso inválido de ponteiro nulo | 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 | Erro de sequência de funções | 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 | O atributo não pode ser definido agora | SQLBulkOperations SQLParamData QLSetPos SQLSetStmtAttr |
HY012 | Código de operação de transação inválido | SQLEndTran |
HY013 | Erro de gerenciamento de memória | Todas as funções ODBC, exceto: SQLGetDiagField SQLGetDiagRec |
HY014 | Limite no número de identificadores excedido | SQLAllocHandle |
HY015 | Nenhum nome de cursor disponível | SQLGetCursorName |
HY016 | Não é possível modificar um descritor de linha de implementação | SQLCopyDesc SQLSetDescField SQLSetDescRec |
HY017 | Uso inválido de um identificador de descritor alocado automaticamente | SQLFreeHandle SQLSetStmtAttr |
HY018 | Solicitação de cancelamento recusada pelo servidor | SQLCancel |
HY019 | Dados não-caracteres e não binários enviados em partes | SQLPutData |
HY020 | Tentar concatenar um valor nulo | SQLPutData |
HY021 | Informações inconsistentes do descritor | SQLBindParameter SQLCopyDesc SQLGetDescField SQLSetDescField SQLSetDescRec |
HY024 | Valor de atributo inválido | SQLSetConnectAttr SQLSetEnvAttr SQLSetStmtAttr |
HY090 | Comprimento de buffer ou cadeia de caracteres inválida | 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 | Identificador de campo de descritor inválido | SQLColAttribute SQLGetDescField SQLSetDescField |
HY092 | Identificador de atributo/opção inválido | SQLAllocHandle QLBulkOperations SQLCopyDesc SQLDriverConnect SQLEndTran SQLFreeStmt SQLGetConnectAttr SQLGetEnvAttr QLParamData SQLSetConnectAttr SQLSetDescField SQLSetEnvAttr SQLSetPos SQLSetStmtAttr |
HY095 | Tipo de função fora do intervalo | SQLGetFunctions |
HY096 | Tipo de informação inválido | SQLGetInfo |
HY097 | Tipo de coluna fora do intervalo | SQLSpecialColumns |
HY098 | Tipo de escopo fora do intervalo | SQLSpecialColumns |
HY099 | Tipo anulável fora do intervalo | SQLSpecialColumns |
HY100 | Tipo de opção de exclusividade fora do intervalo | SQLStatistics |
HY101 | Tipo de opção de precisão fora do intervalo | SQLStatistics |
HY103 | Código de recuperação inválido | SQLDataSources SQLDrivers |
HY104 | Valor de escala ou precisão inválido | SQLBindParameter |
HY105 | Tipo de parâmetro inválido | SQLBindParameter SQLExecDirect SQLExecute SQLParamData SQLSetDescField |
HY106 | Buscar tipo fora do intervalo | Sqlextendedfetch SQLFetchScroll |
HY107 | Valor de linha fora do intervalo | Sqlextendedfetch SQLFetch SQLFetchScroll SQLSetPos |
HY109 | Posição inválida do cursor | SQLExecDirect SQLExecute SQLGetData SQLGetStmtAttr SQLNativeSql SQLParamData SQLSetPos |
HY110 | Conclusão inválida do driver | SQLDriverConnect |
HY111 | Valor de indicador inválido | Sqlextendedfetch SQLFetchScroll |
HYC00 | Recurso opcional não implementado | 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 | Tempo limite esgotado | SQLBrowseConnect SQLBulkOperations SQLColumnPrivileges SQLColumns SQLConnect SQLDriverConnect SQLExecDirect SQLExecute Sqlextendedfetch SQLForeignKeys SQLGetTypeInfo SQLParamData SQLPrepare SQLPrimaryKeys SQLProcedureColumns SQLProcedures SQLSetPos SQLSpecialColumns SQLStatistics SQLTablePrivileges SQLTables |
HYT01 | O tempo limite da conexão expirou | Todas as funções ODBC, exceto: SQLDrivers SQLDataSources SQLGetEnvAttr SQLSetEnvAttr |
IM001 | O driver não dá suporte a essa função | Todas as funções ODBC, exceto: SQLAllocHandle SQLDataSources SQLDrivers SQLFreeHandle SQLGetFunctions |
IM002 | Nome da fonte de dados não encontrado e nenhum driver padrão especificado | SQLBrowseConnect SQLConnect SQLDriverConnect |
IM003 | Não foi possível carregar o driver especificado | SQLBrowseConnect SQLConnect SQLDriverConnect |
IM004 | Falha no SQLAllocHandle do driver no SQL_HANDLE_ENV | SQLBrowseConnect SQLConnect SQLDriverConnect |
IM005 | Falha no SQLAllocHandle do driver no SQL_HANDLE_DBC | SQLBrowseConnect SQLConnect SQLDriverConnect |
IM006 | Falha no SQLSetConnectAttr do driver | SQLBrowseConnect SQLConnect SQLDriverConnect |
IM007 | Nenhuma fonte de dados ou driver especificado; caixa de diálogo proibida | SQLDriverConnect |
IM008 | Falha na caixa de diálogo | SQLDriverConnect |
IM009 | Não é possível carregar a DLL de tradução | SQLBrowseConnect SQLConnect SQLDriverConnect SQLSetConnectAttr |
IM010 | Nome da fonte de dados muito longo | SQLBrowseConnect SQLConnect SQLDriverConnect |
IM011 | Nome do driver muito longo | SQLBrowseConnect SQLDriverConnect |
IM012 | Erro de sintaxe da palavra-chave DRIVER | SQLBrowseConnect SQLDriverConnect |
IM013 | Erro de arquivo de rastreamento | Todas as funções ODBC. |
IM014 | Nome inválido do DSN de Arquivo | SQLDriverConnect |
IM015 | Fonte de dados de arquivo corrompido | SQLDriverConnect |