Megosztás:


Átjárók diagnosztikai példa

Az átjáróarchitektúrákban az illesztőprogram kéréseket küld egy ODBC-t támogató átjárónak. Az átjáró elküldi a kéréseket egy DBMS-nek. Mivel ez az összetevő kapcsolódik az Illesztőprogram-kezelőhöz, az illesztő formázja és visszaadja az SQLGetDiagRec argumentumait.

Ha például az Oracle a Microsoft Open Data Servicesen alapuló rdb-átjárót használ, és ha az Rdb nem találja az EMPLOYEE táblát, az átjáró létrehozhatja ezt a diagnosztikai üzenetet:

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

Mivel a hiba az adatforrásban történt, az átjáró hozzáadta az adatforrás-azonosító ([Rdb]) előtagját a diagnosztikai üzenethez. Mivel az átjáró volt az adatforráshoz csatlakozó összetevő, előtagokat adott hozzá a szállítójához ([DEC]) és azonosítójához ([ODS Gateway]) a diagnosztikai üzenethez. Emellett hozzáadta az SQLSTATE-értéket és az Rdb hibakódot a diagnosztikai üzenet elejéhez. Ez lehetővé tette, hogy megőrizze a saját üzenetstruktúrájának szemantikáját, és továbbra is megadja az ODBC diagnosztikai adatait az illesztőprogramnak. Az illesztőprogram elemzi az átjáró által a hibautasításhoz csatolt hibainformációkat.

Mivel a gateway meghajtó az a komponens, amely az illesztőprogram-kezelővel kommunikál, az előző diagnosztikai üzenetet felhasználva formázza és adja vissza az SQLGetDiagRec következő értékeit:

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