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