Esempio di diagnostica di gateway

In un'architettura gateway, un driver invia richieste a un gateway che supporta ODBC. Il gateway invia le richieste a un sistema DBMS. Poiché è il componente che si interfaccia con Gestione driver, il driver formatta e restituisce argomenti per SQLGetDiagRec.

Ad esempio, se Oracle ha basato un gateway per Rdb in Microsoft Open Data Services e se Rdb non è stato in grado di trovare la tabella EMPLOYEE, il gateway potrebbe generare questo messaggio di diagnostica:

"[42S02][-1][DEC][ODS Gateway][Rdb]%SQL-F-RELNOTDEF, Table EMPLOYEE is not defined "  
   "in schema."  

Poiché l'errore si è verificato nell'origine dati, il gateway ha aggiunto un prefisso per l'identificatore dell'origine dati ([Rdb]) al messaggio di diagnostica. Poiché il gateway era il componente che si interfacciava con l'origine dati, ha aggiunto prefissi per il fornitore ([DEC]) e l'identificatore ([gateway ODS]) al messaggio di diagnostica. Sono stati aggiunti anche il valore SQLSTATE e il codice di errore Rdb all'inizio del messaggio di diagnostica. Ciò consente di mantenere la semantica della propria struttura di messaggi e di fornire comunque le informazioni di diagnostica ODBC al driver. Il driver analizza le informazioni sull'errore collegate all'istruzione error dal gateway.

Poiché il driver del gateway è il componente che si interfaccia con Gestione driver, userà il messaggio di diagnostica precedente per formattare e restituire i valori seguenti da SQLGetDiagRec:

SQLSTATE:         "42S02"  
Native Error:      -1  
Diagnostic Msg:   "[DEC][ODS Gateway][Rdb]%SQL-F-RELNOTDEF, Table EMPLOYEE is not "  
                  "defined in schema."