Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
megfelelőségi
Bevezetett verzió: ODBC 3.0 szabványmegfelelőség: ISO 92
összefoglaló
SQLGetDiagField a diagnosztikai adatstruktúra rekordjának aktuális értékét adja vissza (egy megadott leíróhoz társítva), amely hiba-, figyelmeztetés- és állapotinformációkat tartalmaz.
Szintaxis
SQLRETURN SQLGetDiagField(
SQLSMALLINT HandleType,
SQLHANDLE Handle,
SQLSMALLINT RecNumber,
SQLSMALLINT DiagIdentifier,
SQLPOINTER DiagInfoPtr,
SQLSMALLINT BufferLength,
SQLSMALLINT * StringLengthPtr);
Érvek
HandleType
[Bemenet] Leírótípus-azonosító, amely azt a leírótípust írja le, amelyhez diagnosztikára van szükség. Az alábbiak egyikének kell lennie:
SQL_HANDLE_DBC
SQL_HANDLE_DBC_INFO_TOKEN
SQL_HANDLE_DESC
SQL_HANDLE_ENV
SQL_HANDLE_STMT
SQL_HANDLE_DBC_INFO_TOKEN leírót csak az illesztőprogram-kezelő és az illesztőprogram használja. Az alkalmazások nem használhatják ezt a leírótípust. A SQL_HANDLE_DBC_INFO_TOKEN további információkért lásd: Connection-Pool Tudatosság fejlesztése ODBC-illesztőben.
kezelése
[Bemenet] A HandleTypeáltal jelzett típusú diagnosztikai adatstruktúra leírója. Ha HandleType SQL_HANDLE_ENV, Handle lehet megosztott vagy nem megosztott környezet leírója.
RecNumber
[Bemenet] Azt az állapotrekordot jelzi, amelyből az alkalmazás információt kér. Az állapotrekordok száma 1. Ha az DiagIdentifier argumentum a diagnosztikai fejléc bármely mezőjét jelzi, a rendszer figyelmen kívül hagyja RecNumber. Ha nem, akkor 0-nál többnek kell lennie.
DiagIdentifier
[Bemenet] A diagnosztikának azt a mezőjét jelzi, amelynek értékét vissza kell adni. További információ: "DiagIdentifier Argumentum" szakasz a Megjegyzések szakaszban.
DiagInfoPtr
[Kimenet] Mutasson egy pufferre, amelyben vissza szeretné adni a diagnosztikai adatokat. Az adattípus a DiagIdentifierértékétől függ. Ha DiagInfoPtr egész szám típusú, az alkalmazásoknak SQLULEN puffert kell használniuk, és a függvény meghívása előtt inicializálni kell az értéket 0 értékre, mivel egyes illesztőprogramok csak az alsó 32 bites vagy 16 bites puffert írhatják, és a magasabb rendű bitet változatlanul hagyhatják.
Ha DiagInfoPtr NULL értékű, StringLengthPtr továbbra is visszaadja a DiagInfoPtráltal mutatott pufferben elérhető bájtok teljes számát (a karakteradatok null-végpont karakterének kivételével).
BufferLength
[Bemenet] Ha DiagIdentifier ODBC által definiált diagnosztika, és DiagInfoPtr karaktersztringre vagy bináris pufferre mutat, ennek az argumentumnak *DiagInfoPtrhosszának kell lennie. Ha DiagIdentifier ODBC által definiált mező, és *a DiagInfoPtr egész szám, BufferLength figyelmen kívül hagyja. Ha a *DiagInfoPtr értéke Unicode-sztring (SQLGetDiagFieldWmeghívásakor), a BufferLength argumentumnak páros számnak kell lennie.
Ha DiagIdentifier egy illesztőprogram által definiált mező, az alkalmazás a mező jellegét jelzi a Driver Manager számára a BufferLength argumentum beállításával. BufferLength a következő értékekkel rendelkezhet:
Ha DiagInfoPtr egy karaktersztringre mutató mutató, BufferLength a sztring vagy SQL_NTS hossza.
Ha DiagInfoPtr egy bináris pufferre mutató mutató, az alkalmazás a SQL_LEN_BINARY_ATTR(hossz) makró eredményét BufferLength. Ez negatív értéket helyez el BufferLength.
Ha DiagInfoPtr nem karaktersztringre vagy bináris sztringre mutató mutató, akkor BufferLength SQL_IS_POINTER értékkel kell rendelkeznie.
Ha *DiagInfoPtr rögzített hosszúságú adattípust tartalmaz, BufferLength SQL_IS_INTEGER, SQL_IS_UINTEGER, SQL_IS_SMALLINT vagy SQL_IS_USMALLINT.
StringLengthPtr
[Kimenet] Mutasson arra a pufferre, amelyben a *DiagInfoPtrértékben visszaadandó bájtok teljes száma (a null-végpont karakterhez szükséges bájtok kivételével) a karakteradatok esetében. Ha a visszaadható bájtok száma nagyobb vagy egyenlő, mint BufferLength, a *DiagInfoPtr szövegét a rendszer BufferLength értékre csonkolja, a nullmegadású karakter hosszával.
Visszatér
SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR, SQL_INVALID_HANDLE vagy SQL_NO_DATA.
Diagnosztika
SQLGetDiagField nem tesz közzé diagnosztikai rekordokat. A következő visszatérési értékeket használja a saját végrehajtásának eredményének jelentésére:
SQL_SUCCESS: A függvény sikeresen visszaadta a diagnosztikai adatokat.
SQL_SUCCESS_WITH_INFO: *DiagInfoPtr túl kicsi volt a kért diagnosztikai mező tárolásához. Ezért a diagnosztikai mező adatait csonkoltuk. Annak megállapításához, hogy csonkolás történt-e, az alkalmazásnak össze kell hasonlítania BufferLength a rendelkezésre álló bájtok tényleges számával, amelyet a *StringLengthPtr.
SQL_INVALID_HANDLE: Az HandleType és Handle által jelzett leíró nem volt érvényes.
SQL_ERROR: Az alábbiak egyike történt:
A DiagIdentifier argumentum nem volt érvényes érték.
A DiagIdentifier argumentum SQL_DIAG_CURSOR_ROW_COUNT, SQL_DIAG_DYNAMIC_FUNCTION, SQL_DIAG_DYNAMIC_FUNCTION_CODE vagy SQL_DIAG_ROW_COUNT volt, de Leíró nem volt utasításleíró. (Az Illesztőprogram-kezelő visszaadja ezt a diagnosztikát.)
A RecNumber argumentum negatív vagy 0 volt, amikor DiagIdentifier egy diagnosztikai rekordból származó mezőt jelzett. RecNumber a fejlécmezők figyelmen kívül hagyják.
A kért érték egy karaktersztring volt, és BufferLength nullánál kisebb volt.
Aszinkron értesítés használatakor a leíró aszinkron művelete nem fejeződött be.
SQL_NO_DATA: RecNumber nagyobb volt, mint a leíróban megadott leíróhoz tartozó diagnosztikai rekordok száma. A függvény SQL_NO_DATA ad vissza minden pozitív RecNumber, ha nincsenek diagnosztikai rekordok Handle.
Megjegyzések
Egy alkalmazás általában meghívja SQLGetDiagField, hogy megvalósítsa a három cél egyikét:
Ha egy függvényhívás SQL_ERROR vagy SQL_SUCCESS_WITH_INFO (vagy SQL_NEED_DATA SQLBrowseConnect függvényhez) adott hiba- vagy figyelmeztetési információkat szeretne kapni.
Az adatforrás azon sorainak számának meghatározásához, amelyeket a beszúrási, törlési vagy frissítési műveletek során érintett az SQLExecute
hívása, SQLExecDirect ,SQLBulkOperations vagySQLSetPos (a SQL_DIAG_ROW_COUNT fejlécmezőből), vagy az aktuális nyitott kurzorban található sorok számának meghatározásához, ha az illesztő meg tudja adni ezt az információt (a SQL_DIAG_CURSOR_ROW_COUNT fejlécmezőből).Az SQLExecDirect vagy
SQLExecute hívása által végrehajtott függvény meghatározásához (a SQL_DIAG_DYNAMIC_FUNCTION és SQL_DIAG_DYNAMIC_FUNCTION_CODE fejlécmezőkből).
Az ODBC-függvények minden híváskor nulla vagy több diagnosztikai rekordot tehetnek közzé, így egy alkalmazás bármilyen ODBC-függvényhívás után meghívhatja SQLGetDiagField. Nincs korlátozva az egyszerre tárolható diagnosztikai rekordok száma. SQLGetDiagField csak a Handle argumentumban megadott diagnosztikai adatstruktúrához legutóbb társított diagnosztikai adatokat kéri le. Ha az alkalmazás nem SQLGetDiagField vagy SQLGetDiagRec, akkor az azonos leíróval rendelkező előző hívás diagnosztikai adatai elvesznek.
Az alkalmazások RecNumbernövekményével az összes diagnosztikai rekordot megvizsgálhatják, mindaddig, amíg SQLGetDiagField SQL_SUCCESS ad vissza. Az állapotrekordok száma a SQL_DIAG_NUMBER fejlécmezőben van feltüntetve. Az SQLGetDiagField
Az alkalmazások bármikor meghívhatják SQLGetDiagField, hogy bármely diagnosztikai mezőt visszaadjanak, kivéve SQL_DIAG_CURSOR_ROW_COUNT vagy SQL_DIAG_ROW_COUNT, amely SQL_ERROR ad vissza, ha Handle nem utasításkezelő. Ha bármely más diagnosztikai mező nincs meghatározva, az SQLGetDiagField
További információ: SqlGetDiagRec és SQLGetDiagField és Implementing SQLGetDiagRec és SQLGetDiagField.
Az aszinkron módon végrehajtotttól eltérő API meghívása HY010 "Függvényütemezési hiba" lesz. A hibarekord azonban nem kérhető le az aszinkron művelet befejeződése előtt.
HandleType argumentum
Minden leírótípushoz tartozhatnak diagnosztikai adatok. A HandleType argumentum az Leíróleírótípusát jelzi.
Egyes fejléc- és rekordmezők nem adhatók vissza környezet-, kapcsolat-, utasítás- és leíróleíró-leírókhoz. Azokat a leírókat, amelyekre egy mező nem alkalmazható, a "Fejlécmezők" és a "Rekordmezők" szakasz tartalmazza.
Ha HandleType SQL_HANDLE_ENV, a Handle lehet megosztott vagy nem megosztott környezet leírója.
Nincs olyan illesztőprogram-specifikus fejlécdiagnosztikai mező, amely környezeti leíróhoz lenne társítva.
A leírófogóponthoz definiált diagnosztikai fejlécmezők csak SQL_DIAG_NUMBER és SQL_DIAG_RETURNCODE.
DiagIdentifier argumentum
Ez az argumentum a diagnosztikai adatstruktúra által igényelt mező azonosítóját jelzi. Ha RecNumber értéke 1-nél nagyobb vagy egyenlő, a mezőben szereplő adatok a függvény által visszaadott diagnosztikai adatokat ismertetik. Ha RecNumber értéke 0, akkor a mező a diagnosztikai adatstruktúra fejlécében található, ezért a diagnosztikai adatokat visszaküldött függvényhíváshoz kapcsolódó adatokat tartalmazza, nem pedig a konkrét információkat.
Az illesztőprogramok a diagnosztikai adatstruktúra illesztőprogram-specifikus fejléc- és rekordmezőit határozhatják meg.
Egy ODBC 3*.x* odBC 2*.x* illesztővel dolgozó alkalmazás csak DiagIdentifier argumentummal tudja meghívni SQLGetDiagField SQL_DIAG_CLASS_ORIGIN, SQL_DIAG_CLASS_SUBCLASS_ORIGIN, SQL_DIAG_CONNECTION_NAME, SQL_DIAG_MESSAGE_TEXT, SQL_DIAG_NATIVE, SQL_DIAG_NUMBER, SQL_DIAG_RETURNCODE, SQL_DIAG_SERVER_NAME, vagy SQL_DIAG_SQLSTATE. Az összes többi diagnosztikai mező SQL_ERROR fog visszaadni.
Fejlécmezők
Az alábbi táblázatban felsorolt fejlécmezők szerepelhetnek a DiagIdentifier argumentumban.
| DiagIdentifier | Visszatérési típus | Visszatér |
|---|---|---|
| SQL_DIAG_CURSOR_ROW_COUNT | SQLLEN | Ez a mező a kurzor sorainak számát tartalmazza. Szemantikája az SQLGetInfo SQL_DYNAMIC_CURSOR_ATTRIBUTES2, SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2, SQL_KEYSET_CURSOR_ATTRIBUTES2 és SQL_STATIC_CURSOR_ATTRIBUTES2 információtípusától függ, amely jelzi, hogy mely sorok száma érhető el az egyes kurzortípusokhoz (a SQL_CA2_CRC_EXACT és SQL_CA2_CRC_APPROXIMATE bitekben). A mező tartalma csak az utasításkezelőkhöz van definiálva, és csak azután, hogy SQLExecute, SQLExecDirectvagy SQLMoreResults lett meghívva. Ha SQLGetDiagField egy diagIdentifier a SQL_DIAG_CURSOR_ROW_COUNT nem utasításkezelőn, SQL_ERROR fog visszaadni. |
| SQL_DIAG_DYNAMIC_FUNCTION | SQLCHAR * | Ez egy sztring, amely a mögöttes függvény által végrehajtott SQL-utasítást írja le. (Konkrét értékekért tekintse meg a szakasz későbbi részében található "A dinamikus függvény mezőinek értékei" című szakaszt.) A mező tartalma csak utasításkezelőkhöz van definiálva, és csak az SQLExecute |
| SQL_DIAG_DYNAMIC_FUNCTION_CODE | SQLINTEGER | Ez egy numerikus kód, amely a mögöttes függvény által végrehajtott SQL-utasítást írja le. (Az adott értékről a szakasz későbbi részében található "A dinamikus függvény mezőinek értékei" című szakaszban talál további információt.) A mező tartalma csak utasításkezelőkhöz van definiálva, és csak az SQLExecute |
| SQL_DIAG_NUMBER | SQLINTEGER | A megadott leíróhoz elérhető állapotrekordok száma. |
| SQL_DIAG_RETURNCODE | SQLRETURN | A függvény által visszaadott kód. A visszatérési kódok listáját a Visszatérési kódokcímű témakörben találja. Az illesztőprogramnak nem kell implementálnia SQL_DIAG_RETURNCODE; ezt mindig az Illesztőprogram-kezelő valósítja meg. Ha még nem hívott meg függvényt a Handle, SQL_SUCCESS lesz visszaadva a SQL_DIAG_RETURNCODE. |
| SQL_DIAG_ROW_COUNT | SQLLEN | Az SQLExecute, |
Rekordmezők
Az alábbi táblázatban felsorolt rekordmezők szerepelhetnek a DiagIdentifier argumentumban.
| DiagIdentifier | Visszatérési típus | Visszatér |
|---|---|---|
| SQL_DIAG_CLASS_ORIGIN | SQLCHAR * | Egy sztring, amely azt a dokumentumot jelzi, amely meghatározza az SQLSTATE-érték osztályrészét ebben a rekordban. Értéke "ISO 9075" az Open Group és az ISO hívásszintű interfész által meghatározott összes SQLSTATE-hez. AZ ODBC-specifikus SQLSTATE-k (amelyek SQLSTATE-osztálya "IM"), értéke "ODBC 3.0". |
| SQL_DIAG_COLUMN_NUMBER | SQLINTEGER | Ha a SQL_DIAG_ROW_NUMBER mező egy sorhalmaz vagy paraméterkészlet érvényes sorszáma, akkor ez a mező az eredményhalmaz oszlopszámát vagy a paraméterkészlet paraméterszámát jelöli. Az eredményhalmaz oszlopszámai mindig 1-nél kezdődnek; ha ez az állapotrekord egy könyvjelzőoszlopra vonatkozik, a mező lehet nulla. A paraméterszámok 1-nél kezdődnek. Az érték SQL_NO_COLUMN_NUMBER, ha az állapotrekord nincs oszlopszámhoz vagy paraméterszámhoz társítva. Ha az illesztő nem tudja meghatározni a rekordhoz társított oszlopszámot vagy paraméterszámot, akkor a mező értéke SQL_COLUMN_NUMBER_UNKNOWN. A mező tartalma csak az utasításkezelőkhöz van definiálva. |
| SQL_DIAG_CONNECTION_NAME | SQLCHAR * | Egy sztring, amely annak a kapcsolatnak a nevét jelzi, amelyre a diagnosztikai rekord vonatkozik. Ez a mező illesztőprogram-definícióval van definiálva. A környezeti leíróhoz társított diagnosztikai adatstruktúrák és a kapcsolathoz nem kapcsolódó diagnosztikák esetében ez a mező egy nulla hosszúságú sztring. |
| SQL_DIAG_MESSAGE_TEXT | SQLCHAR * | Tájékoztató üzenet a hibáról vagy figyelmeztetésről. Ez a mező Diagnosztikai üzenetekcímű cikkben leírtak szerint van formázva. A diagnosztikai üzenet szövegének nincs maximális hossza. |
| SQL_DIAG_NATIVE | SQLINTEGER | Illesztőprogram-/adatforrás-specifikus natív hibakód. Ha nincs natív hibakód, az illesztőprogram 0 értéket ad vissza. |
| SQL_DIAG_ROW_NUMBER | SQLLEN | Ez a mező tartalmazza a sorhalmaz sorszámát, vagy azt a paraméterkészlet paraméterszámát, amelyhez az állapotrekord társítva van. A sorszámok és a paraméterszámok 1-vel kezdődnek. Ez a mező SQL_NO_ROW_NUMBER értéket tartalmaz, ha ez az állapotrekord nincs sorszámhoz vagy paraméterszámhoz társítva. Ha az illesztő nem tudja meghatározni a rekordhoz társított sorszámot vagy paraméterszámot, akkor a mező értéke SQL_ROW_NUMBER_UNKNOWN. A mező tartalma csak az utasításkezelőkhöz van definiálva. |
| SQL_DIAG_SERVER_NAME | SQLCHAR * | Egy sztring, amely azt a kiszolgálónevet jelzi, amelyre a diagnosztikai rekord vonatkozik. Ugyanaz, mint az SQLGetInfo |
| SQL_DIAG_SQLSTATE | SQLCHAR * | Öt karakterből állhat az SQLSTATE diagnosztikai kód. További információ: SQLSTATEs. |
| SQL_DIAG_SUBCLASS_ORIGIN | SQLCHAR * | A SQL_DIAG_CLASS_ORIGIN formátummal és érvényes értékekkel rendelkező sztring, amely azonosítja az SQLSTATE-kód alosztályrészének meghatározó részét. Az ODBC-specifikus SQLSTATES, amelyhez az "ODBC 3.0" értéket adja vissza, az alábbiakat tartalmazza: 01S00, 01S01, 01S02, 01S06, 01S07, 07S01, 08S01, 21S01, 21S02, 25S01, 25S02, 25S03, 42S01, 42S02, 42S11, 42S12, 42S21, 42S22, HY095, HY097, HY098, HY099, HY100, HY101, HY105, HY107, HY109, HY110, HY111, HYT00, HYT01, IM001, IM002 IM003, IM004, IM005, IM006, IM007, IM008, IM010, IM011, IM012. |
A dinamikus függvénymezők értékei
Az alábbi táblázat az SQLExecute vagy
| SQL-utasítás Végre |
Érték SQL_DIAG_DYNAMIC_FUNCTION |
Érték SQL_DIAG_DYNAMIC_FUNCTION_CODE |
|---|---|---|
| alter-domain-statement | "ALTER DOMAIN" | SQL_DIAG_ALTER_DOMAIN |
| alter-table-statement | "ALTER TABLE" | SQL_DIAG_ALTER_TABLE |
| helyességi definíciós | "CREATE ASSERTION" | SQL_DIAG_CREATE_ASSERTION |
| karakterkészlet-definíciós | "KARAKTERKÉSZLET LÉTREHOZÁSA" | SQL_DIAG_CREATE_CHARACTER_SET |
| rendezési definíciós | "RENDEZÉS LÉTREHOZÁSA" | SQL_DIAG_CREATE_COLLATION |
| tartománydefiníciós | "TARTOMÁNY LÉTREHOZÁSA" | SQL_DIAG_CREATE_DOMAIN |
| create-index-statement | "INDEX LÉTREHOZÁSA" | SQL_DIAG_CREATE_INDEX |
| create-table-statement | "TÁBLA LÉTREHOZÁSA" | SQL_DIAG_CREATE_TABLE |
| create-view-statement | "NÉZET LÉTREHOZÁSA" | SQL_DIAG_CREATE_VIEW |
| kurzor specifikációs | "KURZOR KIJELÖLÉSE" | SQL_DIAG_SELECT_CURSOR |
| delete-statement-positioned | "DINAMIKUS TÖRLÉSI KURZOR" | SQL_DIAG_DYNAMIC_DELETE_CURSOR |
| törlési utasításban keresve | "DELETE WHERE" | SQL_DIAG_DELETE_WHERE |
| drop-assertion-statement | "DROP ASSERTION" | SQL_DIAG_DROP_ASSERTION |
| drop-character-set-stmt | "DROP CHARACTER SET" | SQL_DIAG_DROP_CHARACTER_SET |
| drop-collation-statement | "DROP COLLATION" | SQL_DIAG_DROP_COLLATION |
| drop-domain-statement | "DROP DOMAIN" | SQL_DIAG_DROP_DOMAIN |
| drop-index-statement | "DROP INDEX" | SQL_DIAG_DROP_INDEX |
| drop-schema-statement | "DROP SCHEMA" | SQL_DIAG_DROP_SCHEMA |
| drop-table-statement | "DROP TABLE" | SQL_DIAG_DROP_TABLE |
| drop-translation-statement | "DROP TRANSLATION" | SQL_DIAG_DROP_TRANSLATION |
| drop-view-statement | "DROP VIEW" | SQL_DIAG_DROP_VIEW |
| engedélyezési | "GRANT" | SQL_DIAG_GRANT |
| beszúrási utasítás | "INSERT" | SQL_DIAG_INSERT |
| ODBC-procedure-extension | "HÍVÁS" | SQL_DIAG_ HÍVÁS |
| visszavonási nyilatkozat | "VISSZAVONÁS" | SQL_DIAG_REVOKE |
| sémadefiníciós | "SÉMA LÉTREHOZÁSA" | SQL_DIAG_CREATE_SCHEMA |
| fordításdefiníciós | "FORDÍTÁS LÉTREHOZÁSA" | SQL_DIAG_CREATE_TRANSLATION |
| update-statement-positioned | "DINAMIKUS FRISSÍTÉSI KURZOR" | SQL_DIAG_DYNAMIC_UPDATE_CURSOR |
| update-statement-searched | "UPDATE WHERE" | SQL_DIAG_UPDATE_WHERE |
| Ismeretlen | üres sztring |
SQL_DIAG_UNKNOWN_STATEMENT |
Állapotrekordok sorrendje
Az állapotrekordok sorszám és a diagnosztika típusa alapján sorrendbe vannak helyezve. Az Illesztőprogram-kezelő határozza meg a végleges sorrendet, amelyben az általa létrehozott állapotrekordokat adja vissza. Az illesztő határozza meg, hogy milyen végső sorrendben adja vissza az általa létrehozott állapotrekordokat.
Ha a diagnosztikai rekordokat az Illesztőprogram-kezelő és az illesztőprogram is közzéteheti, az illesztőprogram-kezelő felelős a rendelésükért.
Ha két vagy több állapotrekord van, a rekordok sorrendjét először a sorszám határozza meg. A diagnosztikai rekordok sor szerinti sorrendjének meghatározására a következő szabályok vonatkoznak:
A sornak nem megfelelő rekordok egy adott sornak megfelelő rekordok előtt jelennek meg, mert a SQL_NO_ROW_NUMBER -1 értékre van definiálva.
Azok a rekordok, amelyeknél a sorszám ismeretlen, az összes többi rekord előtt jelennek meg, mivel SQL_ROW_NUMBER_UNKNOWN -2 értékre van definiálva.
Az adott sorokhoz tartozó összes rekord esetében a rekordok a SQL_DIAG_ROW_NUMBER mező értéke szerint vannak rendezve. Az első érintett sor összes hibája és figyelmeztetése megjelenik, majd a következő érintett sor összes hibája és figyelmeztetése stb.
Jegyzet
Az ODBC 3*.x* illesztőprogram-kezelő nem rendeli meg az állapotrekordokat a diagnosztikai várólistában, ha az SQLSTATE 01S01 (a sorban lévő hiba) egy ODBC 2*.x* illesztő által visszaadott, vagy ha az SQLSTATE 01S01 (sorbeli hiba) eredményül ad vissza ODBC 3*.x* illesztővel, ha SQLExtendedFetch van meghívva, vagy SQLSetPosSQLExtendedFetch.
Az egyes sorokban, illetve azon rekordoknál, amelyek nem egy sornak felelnek meg, vagy amelyeknél a sorszám ismeretlen, vagy az összes olyan rekord esetében, amelynek sorszáma megegyezik SQL_NO_ROW_NUMBER, az első felsorolt rekordot rendezési szabályok használatával határozzuk meg. Az első rekord után a sort érintő többi rekord sorrendje nincs meghatározva. Az alkalmazások nem feltételezik, hogy a hibák megelőzik az első rekord utáni figyelmeztetéseket. Az alkalmazásoknak át kell vizsgálniuk a teljes diagnosztikaiadat-struktúrát, hogy teljes információt kapjanak egy függvény sikertelen hívásáról.
A következő szabályok határozzák meg az első rekordot egy sorban. A legmagasabb ranggal rendelkező rekord az első rekord. A rekordok rangsorolása nem veszi figyelembe a rekordforrást (Illesztőprogram-kezelő, illesztőprogram, átjáró stb.).
hibák hibákat leíró állapotrekordok a legmagasabb rangot kapják. A rendszer a következő szabályokat alkalmazza a rendezési hibákra:
A tranzakciós hibát vagy lehetséges tranzakciós hibát jelző rekordok az összes többi rekordot is túllépik.
Ha két vagy több rekord ugyanazt a hibafeltételt írja le, akkor az Open Group CLI-specifikáció (03–HZ osztály) által definiált SQLSTATE-k túllépik az ODBC-t és az illesztőprogram által definiált SQLSTATE-ket.
Implementáció által definiált No Data Values Az illesztőprogram által definiált Nincs adatértékeket leíró állapotrekordok (02. osztály) a második legmagasabb rangsorban vannak.
figyelmeztetések figyelmeztetéseket leíró állapotrekordok (01. osztály) a legalacsonyabb rangot kapják. Ha két vagy több rekord ugyanazt a figyelmeztetési feltételt írja le, akkor az Open Group CLI specifikációja által meghatározott figyelmeztetési SQLSTATE-k túllépik az ODBC által definiált és az illesztőprogram által definiált SQLSTATE-ket.
Kapcsolódó függvények
| További információ: | Lát |
|---|---|
| Diagnosztikai adatstruktúra több mezőjének beszerzése | SQLGetDiagRec függvény |
Lásd még:
ODBC API-referencia
ODBC-fejlécfájlok