Funkce SQLNumParams

Soulad
Zavedená verze: Dodržování standardů ODBC 1.0: ISO 92

Summary
SQLNumParams vrací počet parametrů v SQL příkazu.

Syntax

  
SQLRETURN SQLNumParams(  
     SQLHSTMT        StatementHandle,  
     SQLSMALLINT *   ParameterCountPtr);  

Arguments

StatementHandle
[Vstup] Popisovač příkazu

ParameterCountPtr
[Výstup] Ukazatel na buffer, do kterého se vrátí počet parametrů ve příkazu.

Returns

SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_STILL_EXECUTING, SQL_ERROR nebo SQL_INVALID_HANDLE.

Diagnostika

Když SQLNumParams vrací 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é SQLNumParams 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.)
08S01 Selhání komunikačního propojení Komunikační propojení mezi ovladačem a zdrojem dat, ke kterému byl ovladač připojen, selhalo před dokončením zpracování funkce.
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.
HY008 Operace byla zrušena. Asynchronní zpracování bylo povoleno pro StatementHandle. Funkce SQLNumParams byla vyvolána a před dokončením vykonání byla na StatementHandlevolána SQLCancel nebo SQLCancelHandle; funkce SQLNumParams byla poté znovu volána na StatementHandle.

Nebo byla volána funkce SQLNumParams a před dokončením spuštění byl SQLCancel nebo SQLCancelHandle volán na StatementHandle z jiného vlákna v multithread aplikaci.
HY010 Chyba posloupnosti funkcí (DM) Funkce byla volána před zavoláním SQLPrepare nebo SQLExecDirect pro CommandHandle.

(DM) Byla volána asynchronně spuštěná funkce pro popisovač připojení, který je přidružen k StatementHandle. Tato asynchronní funkce byla stále v době, kdy byla volána funkce SQLNumParams .

(DM) Pro PříkazHandle byla volána asynchronně spuštěná funkce (ne tato) a při zavolání této funkce se stále spouštěla.

(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) Pro více informací o pozastaveném stavu viz SQLEndTran Function.
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.
IM017 Dotazování je zakázané v asynchronním režimu oznámení. Při každém použití modelu oznámení je dotazování zakázané.
IM018 K dokončení předchozí asynchronní operace na tomto popisovači nebyla volána funkce SQLCompleteAsync. Pokud předchozí volání funkce na popisovači vrátí SQL_STILL_EXECUTING a pokud je povolen režim oznámení, musí být sqlCompleteAsync volán na popisovači, aby bylo možné provést následné zpracování a dokončit operaci.

Comments

SQLNumParams lze volat až poté, co byl SQLPrepare vyvolán.

Pokud příkaz spojený s StatementHandle neobsahuje parametry, SQLNumParams nastaví *ParameterCountPtr na 0.

Počet parametrů vrácených SQLNumParams je stejný jako hodnota SQL_DESC_COUNT pole IPD.

Pro více informací viz Popis parametrů.

Informace o Podívejte se
Vazba bufferu na parametr Funkce SQLBindParameter
Vrácení informace o parametru ve výroku SQLDescribeParam Function