Messaggi di diagnostica

Con ogni SQLSTATE, viene restituito un messaggio di diagnostica. Spesso, lo stesso SQLSTATE viene restituito con una serie di numeri di messaggi diversi. Per esempio, SQLSTATE 42000 (errore di sintassi o violazione di accesso) viene restituito per la maggior parte degli errori nella sintassi SQL. Tuttavia, è probabile che ogni errore di sintassi venga descritto con un messaggio diverso.

I messaggi di diagnostica di esempio sono elencati nella colonna Errore della tabella SQLSTATEs nell'Appendice A e in ogni funzione. Anche se i driver possono restituire questi messaggi, è più probabile che restituiscano qualsiasi messaggio che ricevono dall'origine dati.

Le applicazioni in genere mostrano i messaggi di diagnostica all'utente, insieme al codice nativo di errore SQLSTATE. Questo aiuta l'utente e il personale di supporto a determinare la causa di eventuali problemi. Le informazioni sul componente incorporato nel messaggio sono particolarmente utili in questo caso.

In una connessione ODBC, i messaggi di diagnostica provengono dalle origini dati e dai componenti, quali driver, gateway e driver manager. In genere, le origini dati non supportano direttamente l’ODBC. Di conseguenza, se un componente in una connessione ODBC riceve un messaggio da un'origine dati, identificherà l’origine dati come origine del messaggio. Deve anche identificarsi come il componente che ha ricevuto il messaggio.

Se l'origine di un errore o di un avviso è un componente, il messaggio di diagnostica deve spiegarlo. Pertanto, il testo dei messaggi ha due formati diversi. Per gli errori e gli avvisi che non si verificano in un'origine dati, il messaggio di diagnostica deve usare questo formato:

[ vendor-identifier ][ ODBC-component-identifier ] component-supplied-text

Per gli errori e gli avvisi che si verificano in un'origine dati, il messaggio di diagnostica deve usare questo formato:

[ vendor-identifier ][ ODBC-component-identifier ][ data-source-identifier ] data-source-supplied-text

Nella tabella seguente viene illustrato il significato di ogni elemento.

Elemento Significato
identificatore-fornitore Identifica il fornitore del componente in cui si è verificato l'errore o l'avviso o che ha ricevuto l'errore o l'avviso direttamente dall'origine dati.
identificatore-componente-ODBC Identifica il componente in cui si è verificato l'errore o l'avviso o che ha ricevuto l'errore o l'avviso direttamente dall'origine dati.
identificatore-origine-dati Identificatore dell'origine dati. In genere, per i driver basati su file, si tratta di un formato di file, per esempio Xbase[1] Per i driver basati su DBMS, è il prodotto DBMS.
testo-erogato-da-componente Viene generato dal componente ODBC.
Testo-erogato-da-origine-dati Viene generato dall'origine dati.

[1] In questo caso, il driver funziona sia da driver che da origine dati.

Le parentesi quadre ([ ]) devono essere incluse nel messaggio e indicano elementi obbligatori.