Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Soulad
Zavedená verze: Dodržování standardů ODBC 1.0: ISO 92
Shrnutí
SQLRowCount vrací počet řádků ovlivněných UPDATE, INSERT, nebo DELETE příkazem; operací SQL_ADD, SQL_UPDATE_BY_BOOKMARK nebo SQL_DELETE_BY_BOOKMARK v SQLBulkOperations; nebo operací SQL_UPDATE či SQL_DELETE v SQLSetPos.
Syntax
SQLRETURN SQLRowCount(
SQLHSTMT StatementHandle,
SQLLEN * RowCountPtr);
Arguments
StatementHandle
[Vstup] Popisovač příkazu
RowCountPtr
[Výstup] Ukazuje na buffer, do kterého lze vrátit počet řádků. Pro UPDATEpříkazy , INSERT, a DELETE pro operace SQL_ADD, SQL_UPDATE_BY_BOOKMARK a SQL_DELETE_BY_BOOKMARK v SQLBulkOperations a pro operace SQL_UPDATE nebo SQL_DELETE v SQLSetPos je hodnota vrácená v *RowCountPtr buď počet řádků ovlivněných požadavkem, nebo -1, pokud není tento počet ovlivněných řádků dostupný.
Když je volán SQLExecute, SQLExecDirect, SQLBulkOperations, SQLSetPos nebo SQLMoreResults , pole SQL_DIAG_ROW_COUNT diagnostické datové struktury je nastaveno na počet řádků a počet řádků je uložen do cache způsobem závislým na implementaci. SQLRowCount vrací hodnotu počtu řádků uloženou v cache. Hodnota počtu řádků v cache je platná, dokud není handle příkazu vrácen do připraveného nebo alokovaného stavu, příkaz není znovu vykonán nebo dokud není vyvolán SQLCloseCursor . Všimněte si, že pokud byla funkce volána od nastavení pole SQL_DIAG_ROW_COUNT, hodnota vrácená pomocí SQLRowCount se může lišit od hodnoty v poli SQL_DIAG_ROW_COUNT, protože pole SQL_DIAG_ROW_COUNT je resetováno na 0 jakýmkoli voláním funkce.
Pro jiné příkazy a funkce může ovladač definovat hodnotu vrácenou v *RowCountPtr. Například některé datové zdroje mohou být schopny vrátit počet řádků vrácených příkazem SELECT nebo katalogovou funkcí před načtením řádků.
Note
Mnoho datových zdrojů nemůže vrátit počet řádků v sadě výsledků před jejich načtením; Pro maximální interoperabilitu by aplikace neměly spoléhat na toto chování.
Returns
SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR nebo SQL_INVALID_HANDLE.
Diagnostics
Když SQLRowCount vrátí SQL_ERROR nebo SQL_SUCCESS_WITH_INFO, lze získat přidruženou hodnotu SQLSTATE voláním SQLGetDiagRec s HandleType SQL_HANDLE_STMT a HandleStatementHandle. Následující tabulka uvádí hodnoty SQLSTATE, které SQLRowCount běžně vrací, a vysvětluje každou z nich v kontextu této funkce; notace "(DM)" předchází popisům SQLstavů vráceným Správcem ovladačů. Návratový kód přidružený ke každé hodnotě SQLSTATE je SQL_ERROR, pokud není uvedeno jinak.
| SQLSTATE | Error | Description |
|---|---|---|
| 01000 | Obecné upozornění | Informační zpráva specifická pro řidiče (Funkce vrátí SQL_SUCCESS_WITH_INFO.) |
| HY000 | Obecná chyba | Došlo k chybě, pro kterou nebyla definována žádná specifická funkce SQLSTATE a pro kterou nebyla definována žádná implementace sqlSTATE. Chybová zpráva vrácená nástrojem SQLGetDiagRec v vyrovnávací paměti *MessageText popisuje chybu a její příčinu. |
| HY001 | Chyba přidělení paměti | Ovladač nemohl přidělit paměť potřebnou k podpoře provádění nebo dokončení funkce. |
| HY010 | Chyba posloupnosti funkcí | (DM) Byla volána asynchronně spuštěná funkce pro popisovač připojení, který je přidružen k StatementHandle. Tato asynchronní funkce se stále spouštěla, když byla volána funkce SQLRowCount . (DM) SQLExecute, SQLExecDirect nebo SQLMoreResults byl volána pro StatementHandle a vrácena SQL_PARAM_DATA_AVAILABLE. Tato funkce byla volána před načtením dat pro všechny streamované parametry. (DM) Funkce byla volána před vyvoláním SQLExecute, SQLExecDirect, SQLBulkOperations nebo SQLSetPos pro StatementHandle. (DM) Byla volána asynchronně vykonávající funkce pro CommandHandle a stále se spouštěla, když byla tato funkce vyvolána. (DM) SQLExecute, SQLExecDirect, SQLBulkOperations nebo SQLSetPos byly volány pro StatementHandle a vráceny SQL_NEED_DATA. Tato funkce byla volána před odesláním dat pro všechny parametry provádění dat nebo sloupce. |
| HY013 | Chyba správy paměti | Volání funkce nelze zpracovat, protože základní objekty paměti nelze získat přístup, pravděpodobně kvůli nedostatku paměti. |
| HY117 | Připojení je pozastaveno kvůli neznámému stavu transakce. Jsou povoleny pouze funkce pro odpojení a jen pro čtení. | (DM) Další informace o pozastaveném stavu naleznete v tématu FUNKCE SQLEndTran. |
| HYT01 | Vypršel časový limit připojení | Platnost časového limitu připojení vypršela, než zdroj dat odpověděl na žádost. Časový limit připojení je nastavený prostřednictvím sqlSetConnectAttr SQL_ATTR_CONNECTION_TIMEOUT. |
| IM001 | Ovladač tuto funkci nepodporuje. | (DM) Ovladač přidružený k StatementHandle nepodporuje funkci. |
Comments
Pokud poslední SQL příkaz vykonaný na příkazové rukojeti nebyl , INSERT, nebo DELETE příkaz, UPDATEnebo pokud argument Operation v předchozím volání SQLBulkOperations nebyl SQL_ADD, SQL_UPDATE_BY_BOOKMARK nebo SQL_DELETE_BY_BOOKMARK, nebo pokud argument Operation v předchozím volání SQLSetPos nebyl SQL_UPDATE nebo SQL_DELETE, hodnota *RowCountPtr je definována ovladačem. Další informace naleznete v tématu Určení počtu ovlivněných řádků.
Související funkce
| Informace o | Podívejte se |
|---|---|
| Provádění SQL příkazu | SQLExecDirect Function |
| Spuštění připraveného příkazu SQL | FUNKCE SQLExecute |