Appendice A: codici di errore ODBC
In questo argomento vengono illustrati i valori SQLSTATE per ODBC 3.x. Per altre informazioni su ODBC 3.x valori SQLSTATE, vedere Mapping SQLSTATE.
SQLGetDiagRec o SQLGetDiagField restituisce valori SQLSTATE definiti da Open Group Data Management: Structured Query Language (SQL), versione 2 (marzo 1995). I valori SQLSTATE sono stringhe che contengono cinque caratteri. Nella tabella seguente sono elencati i valori SQLSTATE che un driver può restituire per SQLGetDiagRec.
Il valore stringa di caratteri restituito per sqlSTATE è costituito da un valore di classe a due caratteri seguito da un valore di sottoclasse a tre caratteri. Un valore di classe "01" indica un avviso e viene accompagnato da un codice restituito di SQL_SUCCESS_WITH_INFO. I valori di classe diversi da "01", ad eccezione della classe "IM", indicano un errore e sono accompagnati da un valore restituito di SQL_ERROR. La classe "IM" è specifica per avvisi ed errori che derivano dall'implementazione di ODBC stessa. Il valore della sottoclasse "000" in qualsiasi classe indica che non esiste alcuna sottoclasse per tale sqlSTATE. L'assegnazione di valori di classe e sottoclasse è definita da SQL-92.
Nota
Anche se l'esecuzione corretta di una funzione è in genere indicata da un valore restituito di SQL_SUCCESS, l'istruzione SQLSTATE 00000 indica anche l'esito positivo.
SQLSTATE | Errore | Può essere restituito da |
---|---|---|
01000 | Avviso generale | Tutte le funzioni ODBC, ad eccezione di: Sqlerror SQLGetDiagField Sqlgetdiagrec |
01001 | Conflitto dell'operazione di cursore | SQLExecDirect SQLExecute SQLParamData Sqlsetpos |
01002 | Errore di disconnessione | Sqldisconnect |
01003 | Valore NULL eliminato nella funzione set | SQLExecDirect SQLExecute SQLParamData |
01004 | Dati stringa, troncati a destra | 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 | Privilegio non revocato | SQLExecDirect SQLExecute SQLParamData |
01007 | Privilegio non concesso | SQLExecDirect SQLExecute SQLParamData |
01S00 | Attributo della stringa di connessione non valido | SQLBrowseConnect SQLDriverConnec |
01S01 | Errore nella riga | Sqlbulkoperations Sqlextendedfetch Sqlsetpos |
01S02 | Valore dell'opzione modificato | SQLBrowseConnect SQLConnect SQLDriverConnect SQLExecDirect SQLExecute SQLParamData Sqlprepare SQLSetConnectAttr SQLSetDescField SQLSetEnvAttr SQLSetStmtAttr |
01S06 | Tentativo di recupero prima che il set di risultati restituisca il primo set di righe | Sqlextendedfetch SQLFetchScroll |
01S07 | Troncamento frazionario | Sqlbulkoperations SQLExecDirect SQLExecute Sqlextendedfetch SQLFetch SQLFetchScroll SQLGetData SQLParamData Sqlsetpos |
01S08 | Errore durante il salvataggio del DSN del file | SQLDriverConnect |
01S09 | Parola chiave non valida | SQLDriverConnect |
07001 | Numero errato di parametri | SQLExecDirect SQLExecute |
07002 | Campo COUNT errato | SQLExecDirect SQLExecute SQLParamData |
07005 | Istruzione preparata non specifica cursore | SQLColAttribute SQLDescribeCol |
07006 | Violazione dell'attributo del tipo di dati con restrizioni | SQLBindCol SQLBindParameter Sqlbulkoperations SQLExecDirect SQLExecute Sqlextendedfetch SQLFetch SQLFetchScroll SQLGetData SQLParamData SQLPutData Sqlsetpos |
07009 | Indice descrittore non valido | SQLBindCol SQLBindParameter Sqlbulkoperations SQLColAttribute SQLDescribeCol SQLDescribeParam SQLFetch SQLFetchScroll SQLGetData SQLGetDescField SQLGetDescRec SQLParamData SQLSetDescField SQLSetDescRecSQLSetPos |
07S01 | Uso non valido del parametro predefinito | SQLExecDirect SQLExecute SQLParamData SQLPutData |
08001 | Il client non è in grado di stabilire la connessione | SQLBrowseConnect SQLConnect SQLDriverConnect |
08002 | Nome connessione in uso | SQLBrowseConnect SQLConnect SQLDriverConnect SQLSetConnectAttr |
08003 | Connessione non aperta | SQLAllocHandle Sqldisconnect SQLEndTran SQLGetConnectAttr SQLGetInfo SQLNativeSql SQLSetConnectAttr |
08004 | Il server ha rifiutato la connessione | SQLBrowseConnect SQLConnect SQLDriverConnect |
08007 | Errore di connessione durante la transazione | SQLEndTran |
08S01 | Errore del collegamento di comunicazione | 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 | L'elenco di valori di inserimento non corrisponde all'elenco di colonne | SQLExecDirect Sqlprepare |
21S02 | Il grado di tabella derivata non corrisponde all'elenco di colonne | Sqlbulkoperations SQLExecDirect SQLExecute SQLParamData Sqlprepare Sqlsetpos |
22001 | Dati stringa, troncati a destra | Sqlbulkoperations SQLExecDirect SQLExecute SQLFetch SQLFetchScroll SQLParamData SQLPutData SQLSetDescField Sqlsetpos |
22002 | Variabile indicatore obbligatoria ma non fornita | SQLExecDirect SQLExecute Sqlextendedfetch SQLFetch SQLFetchScroll SQLGetData SQLParamData |
22003 | Valore numerico non compreso nell'intervallo | Sqlbulkoperations SQLExecDirect SQLExecute Sqlextendedfetch SQLFetch SQLFetchScroll SQLGetData SQLGetInfo SQLParamData SQLPutData Sqlsetpos |
22007 | Formato datetime non valido | Sqlbulkoperations SQLExecDirect SQLExecute Sqlextendedfetch SQLFetch SQLFetchScroll SQLGetData SQLParamData SQLPutData Sqlsetpos |
22008 | Overflow del campo Datetime | Sqlbulkoperations SQLExecDirect QLParamData SQLPutData |
22012 | Divisione per zero | SQLExecDirect SQLExecute Sqlextendedfetch SQLFetch SQLFetchScroll SQLGetData SQLPutData |
22015 | Overflow del campo intervallo | Sqlbulkoperations SQLExecDirect SQLExecute Sqlextendedfetch SQLFetch SQLFetchScroll SQLGetData SQLParamData SQLPutData Sqlsetpos |
22018 | Valore carattere non valido per la specifica del cast | Sqlbulkoperations SQLExecDirect SQLExecute Sqlextendedfetch SQLFetch SQLFetchScroll SQLGetData SQLParamData SQLPutData Sqlsetpos |
22019 | Carattere di escape non valido | SQLExecDirect SQLExecute Sqlprepare |
22025 | Sequenza di escape non valida | SQLExecDirect SQLExecute Sqlprepare |
22026 | Lunghezza dei dati non corrispondente. | SQLParamData |
23000 | Violazione del vincolo di integrità | Sqlbulkoperations SQLExecDirect SQLExecute SQLParamData Sqlsetpos |
24000 | Stato del cursore non valido | 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 | Stato della transazione non valido | Sqldisconnect |
25S01 | Stato della transazione | SQLEndTran |
25S02 | La transazione è ancora attiva | SQLEndTran |
25S03 | Viene eseguito il rollback della transazione | SQLEndTran |
28000 | Specifica di autorizzazione non valida | SQLBrowseConnect SQLConnect SQLDriverConnect |
34000 | Nome di cursore non valido | SQLExecDirect Sqlprepare SQLSetCursorName |
3C000 | Nome cursore duplicato | SQLSetCursorName |
3D000 | Nome catalogo non valido | SQLExecDirect Sqlprepare SQLSetConnectAttr |
3F000 | Nome dello schema non valido | SQLExecDirect Sqlprepare |
40001 | Errore di serializzazione | Sqlbulkoperations SQLColumnPrivileges SQLColumns SQLEndTran SQLExecDirect SQLExecute SQLFetch SQLFetchScroll SQLForeignKeys SQLGetTypeInfo SQLMoreResults SQLParamData SQLPrimaryKeys SQLProcedureColumns SQLProcedures Sqlsetpos SQLSpecialColumns SQLStatistics SQLTablePrivileges SQLTables |
40002 | Violazione del vincolo di integrità | SQLEndTran |
40003 | Completamento istruzione sconosciuto | Sqlbulkoperations SQLColumnPrivileges SQLColumns SQLExecDirect SQLExecute SQLFetch SQLFetchScroll SQLForeignKeys SQLGetTypeInfo SQLMoreResults SQLPrimaryKeys SQLProcedureColumns SQLProcedures SQLParamData Sqlsetpos SQLSpecialColumns SQLStatistics SQLTablePrivileges SQLTables |
42000 | Errore di sintassi o violazione di accesso | Sqlbulkoperations SQLExecDirect SQLExecute SQLParamData Sqlprepare Sqlsetpos |
42S01 | Tabella o vista di base già esistente | SQLExecDirect Sqlprepare |
42S02 | Tabella o vista di base non trovata | SQLExecDirect Sqlprepare |
42S11 | Indice già esistente | SQLExecDirect Sqlprepare |
42S12 | Indice non trovato | SQLExecDirect Sqlprepare |
42S21 | Colonna già esistente | SQLExecDirect Sqlprepare |
42S22 | Colonna non trovata | SQLExecDirect Sqlprepare |
44000 | Violazione della clausola WITH CHECK OPTION | Sqlbulkoperations SQLExecDirect SQLExecute SQLParamData Sqlsetpos |
HY000 | Errore generale: | Tutte le funzioni ODBC, ad eccezione di: Sqlerror SQLGetDiagField Sqlgetdiagrec |
HY001 | Errore di allocazione della memoria | Tutte le funzioni ODBC, ad eccezione di: Sqlerror SQLGetDiagField Sqlgetdiagrec |
HY003 | Tipo di buffer dell'applicazione non valido | SQLBindCol SQLBindParameter SQLGetData |
HY004 | Tipo di dati SQL non valido | SQLBindParameter SQLGetTypeInfo |
HY007 | Istruzione associata non preparata | SQLCopyDesc SQLGetDescField SQLGetDescRec |
HY008 | Operazione annullata | Tutte le funzioni ODBC che possono essere elaborate in modo asincrono: 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 non valido del puntatore 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 | Errore della sequenza di funzioni | 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 | Impossibile impostare l'attributo ora | Sqlbulkoperations SQLParamData QLSetPos SQLSetStmtAttr |
HY012 | Codice dell'operazione di transazione non valido | SQLEndTran |
HY013 | Errore di gestione della memoria | Tutte le funzioni ODBC, ad eccezione di: SQLGetDiagField Sqlgetdiagrec |
HY014 | Limite per il numero di handle superati | SQLAllocHandle |
HY015 | Nessun nome di cursore disponibile | SQLGetCursorName |
HY016 | Impossibile modificare un descrittore di riga di implementazione | SQLCopyDesc SQLSetDescField SQLSetDescRec |
HY017 | Uso non valido di un handle descrittore allocato automaticamente | SQLFreeHandle SQLSetStmtAttr |
HY018 | Richiesta di annullamento rifiutata dal server | SQLCancel |
HY019 | Dati non di tipo carattere e non binari inviati in parti | SQLPutData |
HY020 | Tentativo di concatenare un valore Null | SQLPutData |
HY021 | Informazioni sul descrittore incoerente | SQLBindParameter SQLCopyDesc SQLGetDescField SQLSetDescField SQLSetDescRec |
HY024 | Valore dell'attributo non valido | SQLSetConnectAttr SQLSetEnvAttr SQLSetStmtAttr |
HY090 | Lunghezza della stringa o del buffer non valida | 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 | Identificatore di campo del descrittore non valido | SQLColAttribute SQLGetDescField SQLSetDescField |
HY092 | Identificatore di attributo/opzione non valido | SQLAllocHandle QLBulkOperations SQLCopyDesc SQLDriverConnect SQLEndTran SQLFreeStmt SQLGetConnectAttr SQLGetEnvAttr QLParamData SQLSetConnectAttr SQLSetDescField SQLSetEnvAttr Sqlsetpos SQLSetStmtAttr |
HY095 | Tipo di funzione non compreso nell'intervallo | SQLGetFunctions |
HY096 | Tipo di informazioni non valido | SQLGetInfo |
HY097 | Tipo di colonna non compreso nell'intervallo | SQLSpecialColumns |
HY098 | Tipo di ambito non compreso nell'intervallo | SQLSpecialColumns |
HY099 | Tipo nullable non compreso nell'intervallo | SQLSpecialColumns |
HY100 | Tipo di opzione di univocità non compreso nell'intervallo | SQLStatistics |
HY101 | Tipo di opzione accuratezza non compreso nell'intervallo | SQLStatistics |
HY103 | Codice di recupero non valido | SQLDataSources SQLDrivers |
HY104 | Precisione o valore di scala non valido | SQLBindParameter |
HY105 | Tipo di parametro non valido | SQLBindParameter SQLExecDirect SQLExecute SQLParamData SQLSetDescField |
HY106 | Recupero del tipo non compreso nell'intervallo | Sqlextendedfetch SQLFetchScroll |
HY107 | Valore di riga non compreso nell'intervallo | Sqlextendedfetch SQLFetch SQLFetchScroll Sqlsetpos |
HY109 | Posizione del cursore non valida | SQLExecDirect SQLExecute SQLGetData SQLGetStmtAttr SQLNativeSql SQLParamData Sqlsetpos |
HY110 | Completamento driver non valido | SQLDriverConnect |
HY111 | Valore segnalibro non valido | Sqlextendedfetch SQLFetchScroll |
HYC00 | Funzionalità facoltativa non implementata | 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 | Timeout scaduto | SQLBrowseConnect Sqlbulkoperations SQLColumnPrivileges SQLColumns SQLConnect SQLDriverConnect SQLExecDirect SQLExecute Sqlextendedfetch SQLForeignKeys SQLGetTypeInfo SQLParamData Sqlprepare SQLPrimaryKeys SQLProcedureColumns SQLProcedures Sqlsetpos SQLSpecialColumns SQLStatistics SQLTablePrivileges SQLTables |
HYT01 | Il timeout della connessione è scaduto | Tutte le funzioni ODBC, ad eccezione di: SQLDrivers SQLDataSources SQLGetEnvAttr SQLSetEnvAttr |
IM001 | Il driver non supporta questa funzione | Tutte le funzioni ODBC, ad eccezione di: SQLAllocHandle SQLDataSources SQLDrivers SQLFreeHandle SQLGetFunctions |
IM002 | Nome origine dati non trovato e nessun driver predefinito specificato | SQLBrowseConnect SQLConnect SQLDriverConnect |
IM003 | Impossibile caricare il driver specificato | SQLBrowseConnect SQLConnect SQLDriverConnect |
IM004 | SQLAllocHandle del driver in SQL_HANDLE_ENV non riuscito | SQLBrowseConnect SQLConnect SQLDriverConnect |
IM005 | SQLAllocHandle del driver in SQL_HANDLE_DBC non riuscito | SQLBrowseConnect SQLConnect SQLDriverConnect |
IM006 | SqlSetConnectAttr del driver non riuscito | SQLBrowseConnect SQLConnect SQLDriverConnect |
IM007 | Nessuna origine dati o driver specificato; dialogo non consentito | SQLDriverConnect |
IM008 | Finestra di dialogo non riuscita | SQLDriverConnect |
IM009 | Impossibile caricare la DLL di traduzione | SQLBrowseConnect SQLConnect SQLDriverConnect SQLSetConnectAttr |
IM010 | Nome origine dati troppo lungo | SQLBrowseConnect SQLConnect SQLDriverConnect |
IM011 | Nome driver troppo lungo | SQLBrowseConnect SQLDriverConnect |
IM012 | Errore di sintassi delle parole chiave DRIVER | SQLBrowseConnect SQLDriverConnect |
IM013 | Errore del file di traccia | Tutte le funzioni ODBC. |
IM014 | Nome DSN file non valido | SQLDriverConnect |
IM015 | Origine dati file danneggiata | SQLDriverConnect |