Sdílet prostřednictvím


Příklad diagnostiky bran

V architektuře brány ovladač odesílá požadavky do brány, která podporuje rozhraní ODBC. Brána odesílá požadavky do systému správy báze dat (DBMS). Vzhledem k tomu, že se jedná o komponentu, která je součástí správce ovladačů, formátuje a vrací argumenty pro SQLGetDiagRec.

Pokud například Oracle založila bránu k Rdb na Microsoft Open Data Services a Rdb nemohla najít tabulku EMPLOYEE, brána může vygenerovat tuto diagnostickou zprávu:

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

Protože došlo k chybě ve zdroji dat, brána přidala do diagnostické zprávy předponu identifikátoru zdroje dat ([Rdb]). Vzhledem k tomu, že brána byla komponenta, která komunikovala se zdrojem dat, přidala do diagnostické zprávy předpony pro dodavatele ([DEC]) a identifikátor ([ODS Gateway]). Také přidal hodnotu SQLSTATE a kód chyby Rdb na začátek diagnostické zprávy. To mu umožnilo zachovat sémantiku vlastní struktury zpráv a přesto ovladači poskytnout diagnostické informace ODBC. Ovladač analyzuje informace o chybě, které k chybovému hlášení připojila brána.

Vzhledem k tomu, že ovladač brány je komponenta, která je součástí správce ovladačů, použila by předchozí diagnostickou zprávu k formátování a vrácení následujících hodnot z SQLGetDiagRec:

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