Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Quando un'applicazione chiama una funzione ODBC, il driver esegue la funzione e restituisce informazioni di diagnostica in due modi: un codice restituito indica l'esito positivo o negativo complessivo di una funzione ODBC e i record di diagnostica forniscono informazioni dettagliate sulla funzione. I record di diagnostica includono un record di intestazione e record di stato. Almeno un record di diagnostica, il record di intestazione, viene restituito anche se la funzione ha esito positivo.
Le informazioni di diagnostica vengono usate in fase di sviluppo per rilevare errori di programmazione, ad esempio handle non validi ed errori di sintassi nelle istruzioni SQL hardcoded. Viene usato anche in fase di esecuzione per rilevare errori e avvisi di runtime, ad esempio troncamento dei dati, violazioni delle regole ed errori di sintassi nelle istruzioni SQL immesse dall'utente. La logica del programma è in genere basata sui codici restituiti.
Ad esempio, dopo che un'applicazione chiama SQLFetch per recuperare le righe in un set di risultati, il codice restituito indica se è stata raggiunta la fine del set di risultati (SQL_NO_DATA), se sono stati restituiti messaggi informativi (SQL_SUCCESS_WITH_INFO) o se si è verificato un errore (SQL_ERROR).
Se il driver ODBC di SQL Server Native Client restituisce qualsiasi valore diverso da SQL_SUCCESS, l'applicazione può chiamare SQLGetDiagRec per recuperare eventuali messaggi informativi o di errore. Usare SQLGetDiagRec per scorrere verso l'alto e verso il basso il set di messaggi se è presente più di un messaggio.
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.
L'API nativa di Microsoft SQL Server originale, DB-Library per C, consente a un'applicazione di installare funzioni di gestione degli errori di callback e gestione dei messaggi che restituiscono errori o messaggi. Alcune istruzioni Transact-SQL, ad esempio PRINT, RAISERROR, DBCC e SET, restituiscono i risultati alla funzione del gestore messaggi DB-Library anziché a un set di risultati. Tuttavia, l'API ODBC non dispone di tale funzionalità di callback. Quando il driver ODBC di SQL Server Native Client rileva i messaggi restituiti da SQL Server, imposta il codice restituito ODBC su SQL_SUCCESS_WITH_INFO o SQL_ERROR e restituisce il messaggio come uno o più record di diagnostica. Pertanto, un'applicazione ODBC deve testare attentamente questi codici restituiti e chiamare SQLGetDiagRec per recuperare i dati dei messaggi.
Per informazioni sugli errori di traccia, vedere Traccia di accesso ai dati. Per informazioni sui miglioramenti apportati alla traccia degli errori aggiunti in SQL Server 2012, vedere Accesso alle informazioni di diagnostica nel registro eventi estesi.