SQLRowCount függvény

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

Összefoglalás
Az SQLRowCount visszaadja azokat a sorokat, amelyeket egy UPDATE, INSERT, vagy DELETE utasítás érint; egy SQL_ADD, SQL_UPDATE_BY_BOOKMARK vagy SQL_DELETE_BY_BOOKMARK művelet az SQLBulkOperations-ban; vagy egy SQL_UPDATE vagy SQL_DELETE művelet az SQLSetPos-ban.

Syntax

  
SQLRETURN SQLRowCount(  
      SQLHSTMT   StatementHandle,  
      SQLLEN *   RowCountPtr);  

Arguments

StatementHandle
[Bemenet] Utasításkezelő.

RowCountPtr
[Kimenet] A pufferre mutat, ahol vissza lehet adni a sorszámot. UPDATEAz , INSERT, és DELETE utasítások esetén az SQLBulkOperations SQL_ADD, SQL_UPDATE_BY_BOOKMARK és SQL_DELETE_BY_BOOKMARK műveleteihez, valamint az SQLSetPos SQL_UPDATE vagy SQL_DELETE műveleteihez a *RowCountPtr értéke vagy a kérés által érintett sorok száma, vagy -1, ha az érintett sorok száma nem elérhető.

Amikor az SQLExecute, SQLExecDirect, SQLBulkOperations, SQLSetPos vagy SQLMoreResults hívják, a diagnosztikai adatszerkezet SQL_DIAG_ROW_COUNT mezője a sorszámra van állítva, és a sorszámot implementációtól függően gyorstöltik el. Az SQLRowCount visszaadja a gyorsított sorszám értéket. A gyorsított sorszám értéke érvényes, amíg az utasítás handle vissza nem állítódik az előkészített vagy kijelölt állapotba, a utasítást újraindítják, vagy az SQLCloseCursort nem hívják. Fontos megjegyezni, hogy ha egy függvényt az SQL_DIAG_ROW_COUNT mező beállítása óta hívtak meg, az SQLRowCount által visszaadott érték eltérhet a SQL_DIAG_ROW_COUNT mezőben lévő értéktől, mert a SQL_DIAG_ROW_COUNT mezőt bármely függvényhívás 0-ra állítja vissza.

Más utasítások és függvények esetén az illesztőprogram definiálhatja a *RowCountPtr visszaadott értékét. Például egyes adatforrások vissza tudják adni a SELECT utasítás vagy egy katalógus függvény által visszaadott sorok számát a sorok lekérése előtt.

Megjegyzés:

Sok adatforrás nem tudja visszaadni az eredményhalmaz sorainak számát a lekérés előtt; a maximális interoperabilitás érdekében az alkalmazásoknak nem szabad erre a viselkedésre támaszkodniuk.

Returns

SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR vagy SQL_INVALID_HANDLE.

Diagnostics

Amikor az SQLRowCount 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_STMT HandleType és egy HandleType of StatementHandle (Handle) segítségével szól. Az alábbi táblázat felsorolja az SQLRowCount által gyakran visszaadott SQLSTATE értékeket, és mindegyiket ennek a függvénynek a 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 Error Description
01000 Általános figyelmeztetés Illesztőprogram-specifikus tájékoztató üzenet. (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 SQLRowCount 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 SQLExecute, SQLExecDirect, SQLBulkOperations vagy SQLSetPos hívása előtt hívták meg a StatementHandle számára.

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

Ha az utolsó SQL utasítás, amelyet az utasítás handle handle-én hajtottak végre, nem UPDATEINSERT, vagy DELETE utasítás volt, vagy ha az előző SQLBulkOperationshívásban szereplő Operation argumentum nem volt SQL_ADD, SQL_UPDATE_BY_BOOKMARK vagy SQL_DELETE_BY_BOOKMARK, vagy ha az előző SQLSetPoshívásban szereplő Operation argumentum nem volt SQL_UPDATE vagy SQL_DELETE, a *RowCountPtr értéke illesztőszer által definiált. További információ: Az érintett sorok számának meghatározása.

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

Lásd még

ODBC API-referencia
ODBC-fejlécfájlok