SQLNumResultCols függvény

Megfelelőség
Bevezetett verzió: ODBC 1.0 szabványmegfelelőség: ISO 92

Summary
Az SQLNumResultCols visszaadja az eredményhalmazban lévő oszlopok számát.

Syntax

  
SQLRETURN SQLNumResultCols(  
     SQLHSTMT        StatementHandle,  
     SQLSMALLINT *   ColumnCountPtr);  

Arguments

StatementHandle
[Bemenet] Utasításkezelő.

ColumnCountPtr
[Kimenet] Mutató egy pufferre, amelyben vissza lehet adni az eredményhalmaz oszlopainak számát. Ez a szám nem tartalmazza a kötött könyvjelző oszlopot.

Returns

SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_STILL_EXECUTING, SQL_ERROR vagy SQL_INVALID_HANDLE.

Diagnostics

Amikor az SQLNumResultCols SQL_ERROR vagy SQL_SUCCESS_WITH_INFO értéket ad vissza, egy hozzárendelt SQLSTATE értéket lehet megszerezni SQLGetDiagRec hívásával, amely egy SQL_HANDLE_STMT HandleType és egy StatementHandle Handle nevű HandleType (HandleType (Handle) segítségével érhető el. Az alábbi táblázat felsorolja az SQLNumResultCols által gyakran visszaadott SQLSTATE értékeket, és mindegyiket ezen függvény kontextusában magyarázza el; 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.)
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 lefoglalni a függvény végrehajtásának vagy befejezésének támogatásához szükséges memóriát.
HY008 A műveletet megszakították Az aszinkron feldolgozás engedélyezve lett a StatementHandle-ben. A függvényt hívták, és mielőtt befejezte volna a végrehajtást, a StatementHandle-enSQLCancel vagy SQLCancelHandle volt; a függvényt ezután ismét meghívták a StatementHandle-en.

A függvény meghívása megtörtént, és a végrehajtás befejezése előtt az SQLCancel vagy az SQLCancelHandle egy másik szálról lett meghívva a StatementHandle-ra egy többszálas alkalmazásból.
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 SQLNumResultsCols 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) A függvényt az SQLPrepare vagy SQLExecDirect hívása előtt hívták meg a StatementHandle számára.

(DM) Egy aszinkron módon végrehajtó függvény (nem ez) lett meghívva az StatementHandle-hez , és a függvény meghívásakor továbbra is végrehajtó volt.

(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.

Az SQLPrepare függvény részleteiért lásd az SQLPrepare függvényt, hogy mikor szabadítható fel egy utasításkezelő.
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) Az StatementHandle-hez társított illesztőprogram nem támogatja a függvényt.
IM017 A lekérdezés aszinkron értesítési módban le van tiltva Az értesítési modell használata esetén a lekérdezés le van tiltva.
IM018 Az SQLCompleteAsync nem lett meghívva az előző aszinkron művelet végrehajtásához ezen a leírón. Ha a leíró előző függvényhívása SQL_STILL_EXECUTING ad vissza, és ha az értesítési mód engedélyezve van, az SQLCompleteAsync-et a leírón kell meghívni a művelet utófeldolgozásához és befejezéséhez.

Az SQLNumResultCols bármilyen SQLSTATE-t visszaadhat, amelyet az SQLPrepare vagy SQLExecute vissza tud adni, ha az SQLPrepare után és az SQLExecute előtt hívják, attól függően, hogy az adatforrás mikor értékeli az adott SQL utasítást.

Comments

Az SQLNumResultCols csak akkor hívható sikeresen, ha az utasítás előkészített, végrehajtott vagy pozicionált állapotban van.

Ha a StatementHandle-hez tartozó utasítás nem ad vissza oszlopokat, az SQLNumResultCols a *ColumnCountPtr értéket 0-ra állítja.

Az SQLNumResultCols által visszaadott oszlopok száma megegyezik az IRD SQL_DESC_COUNT mezőjével.

További információért lásd: Létrehoztak eredményhalmazt? és Hogyan használják a metaadatokat?

Információ erről: Nézze
Puffer kötése egy eredményhalmaz oszlopához SQLBindCol függvény
Utasításfeldolgozás megszakítása SQLCancel függvény
Információ visszaküldése egy oszlopról az eredményhalmazban SQLColAttribute függvény
Információ visszaküldése egy oszlopról az eredményhalmazban SQLDescribeCol függvény
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
Adatblokk beolvasása vagy egy eredményhalmaz görgetése SQLFetchScroll függvény
Egy sor vagy adatblokk előrelépési irányban történő lekérése SQLFetch függvény
Adatoszlop egy részének vagy egészének beolvasása SQLGetData függvény
SQL utasítás előkészítése végrehajtásra SQLPrepare függvény
A kurzor görgetési beállításainak beállítása SQLSetStmtAttr függvény