Condividi tramite


Codici di ritorno ODBC

Ogni funzione in ODBC restituisce un codice, noto come codice restituito, che indica l'esito positivo o negativo complessivo della funzione. La logica del programma è in genere basata sui codici restituiti.

Ad esempio, il codice seguente chiama SQLFetch per recuperare le righe in un set di risultati. Controlla il codice restituito della funzione per determinare se è stata raggiunta la fine del set di risultati (SQL_NO_DATA), se sono state restituite informazioni di avviso (SQL_SUCCESS_WITH_INFO) o se si è verificato un errore (SQL_ERROR).

SQLRETURN   rc;  
SQLHSTMT    hstmt;  
  
while ((rc=SQLFetch(hstmt)) != SQL_NO_DATA) {  
   if (rc == SQL_SUCCESS_WITH_INFO) {  
      // Call function to display warning information.  
   } else if (rc == SQL_ERROR) {  
      // Call function to display error information.  
      break;  
   }  
   // Process row.  
}  

Il codice restituito SQL_INVALID_HANDLE indica sempre un errore di programmazione e non deve mai essere rilevato in fase di esecuzione. Tutti gli altri codici restituiti forniscono informazioni di runtime, anche se SQL_ERROR può indicare un errore di programmazione.

La tabella seguente definisce i codici restituiti.

Codice restituito Description
SQL_SUCCESS La funzione è stata completata correttamente. L'applicazione invoca SQLGetDiagField per ottenere informazioni aggiuntive dal record di intestazione.
SQL_SUCCESS_WITH_INFO La funzione è stata completata correttamente, possibilmente con un errore non irreversibile (avviso). L'applicazione chiama SQLGetDiagRec o SQLGetDiagField per recuperare informazioni aggiuntive.
SQL_ERROR La funzione non è riuscita. L'applicazione chiama SQLGetDiagRec o SQLGetDiagField per recuperare informazioni aggiuntive. Il contenuto di tutti gli argomenti di output per la funzione non è definito.
SQL_INVALID_HANDLE La funzione non è riuscita a causa di un handle di ambiente, connessione, istruzione o descrittore non valido. Indica un errore di programmazione. Non sono disponibili informazioni aggiuntive da SQLGetDiagRec o SQLGetDiagField. Questo codice viene restituito solo quando l'handle è un puntatore null o è di un tipo errato, ad esempio quando un handle di istruzione viene passato come argomento che richiede un handle di connessione.
SQL_NO_DATA Non erano disponibili altri dati. L'applicazione chiama SQLGetDiagRec o SQLGetDiagField per recuperare informazioni aggiuntive. È possibile che vengano restituiti uno o più record di stato definiti dal driver nella classe 02xxx. Nota: In ODBC 2. x, questo codice restituito è stato denominato SQL_NO_DATA_FOUND.
SQL_NEED_DATA Sono necessari più dati, ad esempio quando i dati dei parametri vengono inviati in fase di esecuzione o sono necessarie informazioni aggiuntive sulla connessione. L'applicazione chiama SQLGetDiagRec o SQLGetDiagField per recuperare informazioni aggiuntive, se presenti.
SQL_STILL_EXECUTING Una funzione avviata in modo asincrono è ancora in esecuzione. L'applicazione chiama SQLGetDiagRec o SQLGetDiagField per recuperare informazioni aggiuntive, se presenti.