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ég
Bemutatott verzió: ODBC 3.0 szabványoknak megfelelés: ISO 92
Summary
Az SQLGetDescRec visszaadja a leíró rekord több mezőjének aktuális beállításait vagy értékeit. A visszatérő mezők leírják az oszlop- vagy paraméteradatok nevét, adattípusát és tárolását.
Syntax
SQLRETURN SQLGetDescRec(
SQLHDESC DescriptorHandle,
SQLSMALLINT RecNumber,
SQLCHAR * Name,
SQLSMALLINT BufferLength,
SQLSMALLINT * StringLengthPtr,
SQLSMALLINT * TypePtr,
SQLSMALLINT * SubTypePtr,
SQLLEN * LengthPtr,
SQLSMALLINT * PrecisionPtr,
SQLSMALLINT * ScalePtr,
SQLSMALLINT * NullablePtr);
Arguments
DescriptorHandle
[Bemenet] Leíró kilét.
RecNumber
[Bemenet] Jelzi azt a leíró rekordot, amelyből az alkalmazás információt keres. A leíró rekordokat 1-től számozták, a 0-es rekord pedig a könyvjelző rekord.
A RecNumber érvnek kisebbnek vagy egyenlőnek kell lennie SQL_DESC_COUNT értékével. Ha a RecNumber kisebb vagy egyenlő SQL_DESC_COUNT-vel, de a sor nem tartalmaz adatokat egy oszlophoz vagy paraméterhez, az SQLGetDescRec hívása visszaadja a mezők alapértelmezett értékeit. (További információért lásd: "Inicializáció a leíró mezők" az SQLSetDescField területén.)
Név
[Kimenet] Egy mutató egy pufferre, amelyben vissza lehet adni a SQL_DESC_NAME mezőt a leíró rekordhoz.
Ha a név NULL, a StringLengthPtr továbbra is visszaadja a név által mutatott pufferben elérhető összes karakterszámot (kivéve a null-terminációs karaktert a karakteradatokhoz).
BufferLength
[Bemenet] A *Névpuffer hossza, karakterekben.
StringLengthPtr
[Kimenet] Egy pufferre mutató, amelyben vissza lehet adni a *Név pufferben elérhető karakterek számát, kivéve a null-terminációs karaktert. Ha a karakterek száma nagyobb, mint a BufferLength, akkor a *Name adatait BufferLength-re vágják le a null-terminációs karakter hosszára, és a driverrel null-terminál.
TypePtr
[Kimenet] Egy mutató egy pufferre, amelyben vissza lehet adni a SQL_DESC_TYPE mező értékét a leíró rekordhoz.
SubTypePtr
[Kimenet] Azoknál a rekordoknál, amelyek típusa SQL_DATETIME vagy SQL_INTERVAL, ez egy pufferre mutató, amelyben a SQL_DESC_DATETIME_INTERVAL_CODE mező értékét lehet visszaadni.
LengthPtr
[Kimenet] Egy puffermutató, amelyben visszaadja a SQL_DESC_OCTET_LENGTH mező értékét a leíró rekordhoz.
PrecisionPtr
[Kimenet] Egy mutató egy pufferre, amelyben vissza lehet adni a SQL_DESC_PRECISION mező értékét a leíró rekordhoz.
ScalePtr
[Kimenet] Egy puffermutató, amelyben visszaadja a SQL_DESC_SCALE mező értékét a leíró rekordhoz.
NullablePtr
[Kimenet] Egy mutató egy pufferre, amelyben vissza lehet adni a SQL_DESC_NULLABLE mező értékét a leíró rekordhoz.
Returns
SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR, SQL_NO_DATA vagy SQL_INVALID_HANDLE.
SQL_NO_DATA akkor jelenik meg, ha a RecNumber nagyobb, mint a jelenlegi leíró rekordok száma.
SQL_NO_DATA akkor jelenik meg, ha a DescriptorHandle IRD handle, és az utasítás előkészített vagy futtatott állapotban van, de nem volt hozzá nyitott kurzor.
Diagnostics
Amikor az SQLGetDescRec SQL_ERROR vagy SQL_SUCCESS_WITH_INFO értéket ad vissza, egy hozzárendelt SQLSTATE érték elérhető SQLGetDiagRec hívásával, amely egy SQL_HANDLE_DESC HandleType és egy DescriptorHandleHandle nevű HandleType segítségével szól. Az alábbi táblázat felsorolja az SQLGetDescRec által általában visszaadott SQLSTATE értékeket, és mindegyiket ennek a függvénynek a kontextusában magyarázza; a "(DM)" jelölés megelőzi a Driver Manager által visszaadott SQLSTATE-leírásokat. Az egyes SQLSTATE-értékekhez társított visszatérési kód SQL_ERROR, kivéve, ha másként van feltüntetve.
| SQLSTATE | Hiba | Description |
|---|---|---|
| 01000 | Általános figyelmeztetés | Illesztőprogram-specifikus tájékoztató üzenet. (A függvény SQL_SUCCESS_WITH_INFO ad vissza.) |
| 01004 | Sztringadatok, jobb csonkolt | A buffer *Name nem volt elég nagy ahhoz, hogy az egész leíró mezőt visszaadja. Ezért a mezőt lerövidítették. A csonkítatlan leíró mező hosszát a *StringLengthPtr-ben adjuk vissza. (A függvény SQL_SUCCESS_WITH_INFO ad vissza.) |
| 07009 | Érvénytelen descriptor index |
A FieldIdentifier argumentum egy rekordmező volt, a RecNumber argumenta 0-ra, a DescriptorHandle érve pedig egy IPD handle. (DM) A RecNumber argumentum 0-ra volt állítva, a SQL_ATTR_USE_BOOKMARKS utasítás attribútuma SQL_UB_OFF-re, a DescriptorHandle érve pedig IRD handle volt. A RecNumber érv kevesebb volt, mint 0. |
| 08S01 | Kommunikációs kapcsolat hibája | Az illesztőprogram és az adatforrás közötti kommunikációs kapcsolat, amelyhez az illesztőprogram csatlakoztatva volt, nem sikerült, mielőtt a függvény befejeződött a feldolgozás. |
| HY000 | Általános hiba | Hiba történt, amely miatt nem volt konkrét SQLSTATE, és amelyhez nem definiáltak implementációspecifikus SQLSTATE-t. Az SQLGetDiagRec által a *MessageText pufferben visszaadott hibaüzenet leírja a hibát és annak okát. |
| HY001 | Memóriafoglalási hiba | Az illesztőprogram nem tudta lekötni azt a memóriát, amely szükséges a funkció végrehajtásához vagy befejezéséhez. |
| HY007 | A kapcsolódó nyilatkozat nincs elkészítve | A DescriptorHandle IRD-hez volt kötve, és a hozzá tartozó utasításkezelő nem volt előkészített vagy végrehajtott állapotban. |
| HY010 | Függvényütemezési hiba | (DM) A DescriptorHandle egy StatementHandle eszközhöz volt kapcsolva, amelyhez egy aszinkron futó függvényt hívtak (nem ezt), és még akkor futott, amikor ezt a függvényt hívták. (DM) A DescriptorHandle egy StatementHandle-hez volt kapcsolva, amelyhez az SQLExecute, SQLExecDirect, SQLBulkOperations vagy SQLSetPos meghívást és vissza SQL_NEED_DATA visszaadtak. Ezt a függvényt az összes adatvégrehajtási paraméter vagy oszlop adatküldése előtt hívták meg. (DM) Egy aszinkron futóképességű függvényt hívtak a DescriptorHandle kapcsolati handle-hez. Ez az aszinkron függvény még akkor futott, amikor az SQLGetDescRec hívást kaptuk. |
| HY013 | Memóriakezelési hiba | A függvényhívás nem dolgozható fel, mert a mögöttes memóriaobjektumok nem érhetők el, esetleg a memóriahiány miatt. |
| HY117 | A kapcsolat ismeretlen tranzakciós állapot miatt fel van függesztve. Csak a leválasztási és írásvédett függvények engedélyezettek. | (DM) A felfüggesztett állapotról további információt az SQLEndTran függvényben talál. |
| HYT01 | A kapcsolati időkorlát lejárt | A kapcsolat időtúllépési időtartama lejárt, mielőtt az adatforrás válaszolt a kérésre. A kapcsolat időtúllépési időszaka az SQLSetConnectAttr SQL_ATTR_CONNECTION_TIMEOUT keresztül van beállítva. |
| IM001 | Az illesztőprogram nem támogatja ezt a függvényt | (DM) A DescriptorHandle által csatlakoztatott illesztőprogram nem támogatja ezt a funkciót. |
Comments
Egy alkalmazás hívhatja az SQLGetDescRec-et , hogy egyetlen oszlop vagy paraméter esetén az alábbi leíró mezők értékeit kérje:
SQL_DESC_NAME
SQL_DESC_TYPE
SQL_DESC_DATETIME_INTERVAL_CODE (olyan rekordoknál, amelyek típusa SQL_DATETIME vagy SQL_INTERVAL)
SQL_DESC_OCTET_LENGTH
SQL_DESC_PRECISION
SQL_DESC_SCALE
SQL_DESC_NULLABLE
Az SQLGetDescRec nem kéri meg a fejlécek értékeit.
Egy alkalmazás megakadályozhatja a mező beállításának visszatérését azzal, hogy a mezőhöz tartozó argumentumot null mutatóvá állítja.
Amikor egy alkalmazás az SQLGetDescRec-et hívja, hogy egy adott leíró típusra definiálatlan mező értékét kérje, a függvény SQL_SUCCESS ad, de a mező értéke nem definiált. Például, ha az APD vagy ARD SQL_DESC_NAME vagy SQL_DESC_NULLABLE mezőjére az SQLGetDescRec hívása SQL_SUCCESS de egy definiálatlan értéket ad vissza a mezőhöz.
Amikor egy alkalmazás az SQLGetDescRec-et hívja, hogy lekérje egy adott leíró típusra definiált, de alapértelmezett értéke nincs, és még nincs beállítva, a függvény SQL_SUCCESS tér vissza, de a mező értéke nem definiált. További információért lásd: "Inicializáció a leíró mezők informatálása" az SQLSetDescField oldalon.
A mezők értékei egyénileg is lekérhetők egy SQLGetDescField hívással. A descriptor fejlécében vagy rekordban szereplő mezők leírásáért lásd: SQLSetDescField. További információ a leírókról: Leírók.
Kapcsolódó funkciók
| Információ erről: | Nézze |
|---|---|
| Egy oszlop kötése | SQLBindCol függvény |
| Paraméter kötése | SQLBindParameter függvény |
| Leíró mező megszerzése | SQLGetDescField függvény |
| Több leíró mező beállítása | SQLSetDescRec Function |