Condividi tramite


Esempio di diagnostica di gateway

In un'architettura del 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 gli argomenti per SQLGetDiagRec.

Ad esempio, se Oracle basa un gateway per Rdb su Microsoft Open Data Services e se Rdb non riesce a 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, aggiungeva i prefissi per il fornitore ([DEC]) e l'identificatore ([ODS Gateway]) al messaggio di diagnostica. È stato aggiunto anche il valore SQLSTATE e il codice errore Rdb all'inizio del messaggio di diagnostica. Ciò ha consentito di mantenere la semantica della propria struttura di messaggi e fornire comunque le informazioni di diagnostica ODBC al driver. Il driver analizza le informazioni sull'errore associate all'istruzione di errore dal gateway.

Poiché il driver del gateway è il componente che si interfaccia con Gestione driver, usa 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."