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
Bevezetett verzió: ODBC 1.0 szabványmegfelelőség: ISO 92
Összefoglalás
Az SQLGetCursorName egy meghatározott utasításhoz tartozó kurzornevet adja vissza.
Syntax
SQLRETURN SQLGetCursorName(
SQLHSTMT StatementHandle,
SQLCHAR * CursorName,
SQLSMALLINT BufferLength,
SQLSMALLINT * NameLengthPtr);
Arguments
StatementHandle
[Bemenet] Utasításkezelő.
CursorName
[Kimenet] Mutató egy pufferre, amelyben vissza lehet adni a kurzor nevét.
Ha a CursorName NULL, a NameLengthPtr továbbra is visszaadja a CursorName által mutatott pufferben elérhető összes karakterszámot (kivéve a null-terminációs karaktert a karakteradatokhoz).
BufferLength
[Bemenet] A *CursorName, karakterekben.
NameLengthPtr
[Kimenet] Mutató a memóriára, amelyben vissza lehet adni a *CursorName-ben elérhető összes karakter számát (a null-terminációs karakter kivételével). Ha a visszatérhető karakterek száma nagyobb, mint a BufferLength, a *CursorName kurzorneve a null-terminációs karakter hosszát levonva BufferLength-re rövidítik.
Returns
SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR vagy SQL_INVALID_HANDLE.
Diagnostics
Amikor az SQLGetCursorName SQL_ERROR vagy SQL_SUCCESS_WITH_INFO értéket ad, egy hozzárendelt SQLSTATE érték megkapható SQLGetDiagRec hívásával, amely egy SQL_HANDLE_STMT HandleType és egy HandleType (StatementHandle) segítségével érhető el. Az alábbi táblázat felsorolja az SQLGetCursorName által gyakran 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 | Error | 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 *CursorName puffer nem volt elég nagy ahhoz, hogy visszaadja az egész kurzornevet, így a kurzornév lerövidült. A kurzornév hosszát a *NameLengthPtr-ben visszaadják. (A függvény SQL_SUCCESS_WITH_INFO ad vissza.) |
| 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 lefoglalni a függvény végrehajtásának vagy befejezésének támogatásához szükséges memóriát. |
| HY010 | Függvényütemezési hiba | (DM) A StatementHandle-hez társított kapcsolati leíróhoz aszinkron módon végrehajtó függvény lett meghívva. Ez az aszinkron függvény még akkor futott, amikor az SQLGetCursorName függvényt hívták. (DM) SQLExecute, SQLExecDirect vagy SQLMoreResults lett meghívva az Utasításkezelőhöz , és SQL_PARAM_DATA_AVAILABLE ad vissza. Ez a függvény az összes streamelt paraméter adatainak lekérése előtt lett meghívva. (DM) Egy aszinkron futó függvényt hívtak a StatementHandle számára, és még akkor futott, amikor ezt a függvényt hívták. (DM) SQLExecute, SQLExecDirect, SQLBulkOperations vagy SQLSetPos lett meghívva az Utasításkezelőhöz , és SQL_NEED_DATA. Ezt a függvényt az összes adatvégrehajtási paraméter vagy oszlop adatküldése előtt hívták meg. |
| 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. |
| HY015 | Nincs kurzornév | (DM) Az illezőprogram egy ODBC 2*.x* illezőgép volt, nem volt nyitott kurzor az utasításon, és nem állítottak be kurzornevet SQLSetCursorName néven. |
| HY090 | Érvénytelen sztring vagy puffer hossza | (DM) A BufferLength argumentumban megadott érték kevesebb volt, mint 0. |
| 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) Az StatementHandle-hez társított illesztőprogram nem támogatja a függvényt. |
Comments
A kurzorneveket csak pozicionált update és delete utasításokban használják (például UPDATEtáblázatnév ... HOL Akurzornév aktuális állapota). További információért lásd: Pozitívált frissítés és törlés nyilatkozatok. Ha az alkalmazás nem hívja az SQLSetCursorName kurzornév meghatározására, az illesztőprogram nevet generál. Ez a név SQL_CUR betűkkel kezdődik.
Megjegyzés:
Az ODBC 2*.x* esetében, amikor nem volt nyitott kurzor, és nem állítottak be nevet az SQLSetCursorName hívásával, az SQLGetCursorName hívás SQLSTATE HY015-öt adott vissza (Kurzornév nem elérhető). Az ODBC 3*.x* esetében ez már nem igaz; függetlenül attól, mikor hívják az SQLGetCursorName-t , az illesztőprogram visszaadja a kurzornevet.
Az SQLGetCursorName visszaadja a kurzor nevét, függetlenül attól, hogy a név kifejezetten vagy implicit módon jött létre. A kurzornév implicit módon generálódik, ha az SQLSetCursorName nem hívja meg. Az SQLSetCursorName meghívható, hogy átnevezze egy kurzort egy utasításon, amennyiben a kurzor egy kijelölt vagy előkészített állapotban van.
Egy kurzornév, amely kifejezetten vagy implicit módon van beállítva, megmarad, amíg el nem kerül a hozzá kapcsolódó StatementHandle (StatementHandle), amely SQL_HANDLE_STMT HandleType segítségével történik.
Kapcsolódó funkciók
| Információ erről: | Nézze |
|---|---|
| SQL utasítás végrehajtása | SQLExecDirect függvény |
| Előkészített SQL-utasítás végrehajtása | SQLExecute függvény |
| Utasítás előkészítése végrehajtáshoz | SQLPrepare függvény |
| Kurzornév beállítása | SQLSetCursorName függvény |