Diagnosztikai feljegyzések és mezők
A diagnosztikai feljegyzések az ODBC környezethez, kapcsolathoz, utasításhoz vagy leíró mutatókhoz vannak társítva. Ha bármilyen ODBC a függvény visszatérési kódot eltérő SQL_SUCCESS vagy SQL_INVALID_HANDLE, fogantyú, hívja a funkciót kapcsolódó diagnosztikai tartalmazó bejegyzések tájékoztató üzenetek vagy hibaüzenetek. Ezeket a rekordokat addig tárolják, amíg egy másik funkciót nem hívnak le ezzel a leíróval, amely időpontban a rekordok törlődnek. A leíráshoz társított diagnosztikai rekordok számának egyidejű korlátozása nincs.
Kétféle diagnosztikai rekord létezik: egy cím és egy állapot. A fejléc bejegyzés 0-as szám; ha vannak állapotjelentések, akkor számuk van 1-től kezdődően. A diagnosztikai feljegyzések különböző mezőket tartalmaznak a fejléc bejegyzésére és az állapotrekordokra vonatkozóan. Az ODBC komponensek is meghatározhatják saját diagnosztikai rekordjaikat.
A fejlécrekord mezői általános információkat tartalmaznak a funkció végrehajtásáról, beleértve a visszatérési kódot, a sorok számát, az állapotrekordok számát és a végrehajtandó utasítás típusát. A header rekord mindig létrejön, hacsak az ODBC függvény nem adja vissza az SQL_INVALID_HANDLE értéket. A fejlécbejegyzés mezőinek teljes listáját lásd: SQLGetDiagField.
Fields az állapot rekordok információkat tartalmaznak konkrét hiba és figyelmeztető üzenetek által visszaadott ODBC driver manager, vezető vagy az adatok forrását, beleértve az érték a SQLSTATE száma önhiba, a diagnosztikai üzenet oszlop számát, és a sor számát. Felvételi állapot jön létre, ha a függvény a SQL_ERROR, SQL_SUCCESS_WITH_INFO, SQL_NO_DATA, SQL_NEED_DATA vagy SQL_STILL_EXECUTING. A státuszrekordok mezőinek teljes listáját lásd: SQLGetDiagField.
SQLGetDiagRec funkciót kap egyetlen diagnosztikai rekordot együtt érték ODBC SQLSTATE, saját hiba számát és diagnosztikai területeken. Ez a funkció hasonló az ODBC 2.x SQLError funkciójához. Az ODBC 3.x legegyszerűbb hibakezelési funkciója az SQLGetDiagRec ismételt hívása. kezdve a referenciaérték paraméter RecNumber 1, majd RecNumber paraméter értékét megnöveljük 1-mindaddig, amíg a függvény SQLGetDiagRec SQL_NO_DATA. Ez egyenértékű azzal, hogy az SQLError függvényt az ODBC 2.x alkalmazásban hívja addig, amíg vissza nem tér vissza SQL_NO_DATA_FOUND.
Az ODBC 3.x sokkal több diagnosztikai információt támogat, mint az ODBC 2.x. Ez az információ az SQLGetDiagField funkcióval kapott diagnosztikai feljegyzések további mezőiben tárolódik.
Az SQL Server Native Client ODBC illesztőprogram illesztőprogram-specifikus diagnosztikai mezőket tartalmaz, amelyek az SQLGetDiagField funkció használatával érhetők el. Az illesztőprogram-specifikus mezők címkéit az sqlncli.h fájl határozza meg. Ezekkel a címkékkel, akkor kap az állam az SQL Server, a betegség súlyosságától, a kiszolgáló nevét, az eljárás neve és a sorszám kapcsolódó egyes diagnosztikai rekordot. Szintén sqlncli.h definíciós fájl tartalmazza a kódok azonosítására használt illesztőprogram-SQL utasításokat, ha az alkalmazás kéri SQLGetDiagField funkció egy előre meghatározott értéket a paraméter DiagIdentifier SQL_DIAG_DYNAMIC_FUNCTION_CODE.
Az SQLGetDiagField függvényt az ODBC illesztőprogram kezelő kezeli az alatta lévő illesztőprogramban tárolt hiba információ alapján. Az ODBC illesztőprogram-kezelő nem gyűjti a meghajtó-specifikus diagnosztikai mezőket a sikeres kapcsolat létrehozása előtt. Az SQLGetDiagField függvény az SQL_ERROR értéket adja vissza, ha meghívást kapott a meghajtó-specifikus diagnosztikai mezők beszerzésére a sikeres kapcsolat befejezése előtt. Ha az ODBC kapcsolat visszatér SQL_SUCCESS_WITH_INFO, a vezető-specifikus diagnosztikai területeken még nem állnak rendelkezésre a kapcsolat működését. SQLGetDiagField funkció specifikus diagnosztikai területeken vezető hívás után a hívás és a kapcsolat működését, miután az ODBC hívás másik funkció.