Sdílet prostřednictvím


funkce SQLExecDirect

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

Shrnutí
SQLExecDirect spustí předparovatelný příkaz s použitím aktuálních hodnot proměnných značek parametrů, pokud v příkazu existují nějaké parametry. SQLExecDirect je nejrychlejší způsob, jak odeslat příkaz SQL pro jednorázové spuštění.

Syntaxe

  
SQLRETURN SQLExecDirect(  
     SQLHSTMT     StatementHandle,  
     SQLCHAR *    StatementText,  
     SQLINTEGER   TextLength);  

Arguments

StatementHandle
[Vstup] Popisovač příkazu

Text příkazu
[Vstup] Příkaz SQL, který se má spustit.

TextLength
[Vstup] Délka *StatementText v znaznach.

Návraty

SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_NEED_DATA, SQL_STILL_EXECUTING, SQL_ERROR, SQL_NO_DATA, SQL_INVALID_HANDLE nebo SQL_PARAM_DATA_AVAILABLE.

Diagnostika

Když sqlExecDirect vrátí buď SQL_ERROR nebo SQL_SUCCESS_WITH_INFO, přidruženou hodnotu SQLSTATE lze získat voláním SQLGetDiagRec s HandleType SQL_HANDLE_STMT a popisovačStatementHandle. Následující tabulka uvádí hodnoty SQLSTATE, které obvykle vrací SQLExecDirect a vysvětluje každý z nich v kontextu této funkce; notace "(DM)" předchází popisy funkcí SQLSTATEs vrácených 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.)
01001 Konflikt operace kurzoru * Text příkazu obsahoval umístěný příkaz update nebo delete a nebyly aktualizovány nebo odstraněny žádné řádky nebo více než jeden řádek. (Další informace o aktualizacích více než jednoho řádku najdete v popisu atributu SQL_ATTR_SIMULATE_CURSOR v sqlSetStmtAttr.)

(Funkce vrátí SQL_SUCCESS_WITH_INFO.)
01003 Hodnota NULL byla eliminována ve funkci set Argument StatementText obsahoval nastavenou funkci (například AVG, MAX, MIN atd.), ale ne hodnoty argumentu COUNT a hodnoty argumentů NULL byly před použití funkce odstraněny. (Funkce vrátí SQL_SUCCESS_WITH_INFO.)
01004 Řetězcová data, zkrácená vpravo Řetězcová nebo binární data vrácená pro vstupní/výstupní nebo výstupní parametr způsobila zkrácení neprázdného znaku nebo binárních dat bez hodnoty NULL. Pokud se jednalo o řetězcovou hodnotu, byla zkrácena doprava. (Funkce vrátí SQL_SUCCESS_WITH_INFO.)
01006 Oprávnění se neodvolal * Příkaz StatementText obsahoval příkaz REVOKE a uživatel neměl zadané oprávnění. (Funkce vrátí SQL_SUCCESS_WITH_INFO.)
01007 Oprávnění se neuděluje *StatementText byl příkaz GRANT a uživatel nemohl být udělen zadaný oprávnění.
01S02 Změna hodnoty možnosti Zadaný atribut příkazu byl neplatný kvůli pracovním podmínkám implementace, takže podobná hodnota byla dočasně nahrazena. (SqlGetStmtAttr lze volat, abyste zjistili, co je dočasně nahrazená hodnota.) Náhradní hodnota je platná pro StatementHandle , dokud kurzor není uzavřen, v tomto bodě se atribut příkazu vrátí k předchozí hodnotě. Atributy příkazu, které lze změnit, jsou:

SQL_ ATTR_CONCURRENCY SQL_ ATTR_CURSOR_TYPE SQL_ ATTR_KEYSET_SIZE SQL_ ATTR_MAX_LENGTH SQL_ ATTR_MAX_ROWS SQL_ ATTR_QUERY_TIMEOUT SQL_ ATTR_SIMULATE_CURSOR

(Funkce vrátí SQL_SUCCESS_WITH_INFO.)
01S07 Zlomkové zkrácení Data vrácená pro vstupní/výstupní nebo výstupní parametr byla zkrácena tak, aby byla část číselného datového typu zkrácena nebo zlomková část časového prvku času, časového razítka nebo intervalového datového typu zkrácena.

(Funkce vrátí SQL_SUCCESS_WITH_INFO.)
07002 Nesprávné pole COUNT Počet parametrů zadaných v parametru SQLBindParameter byl menší než počet parametrů v příkazu SQL obsaženém v příkazu *StatementText.

Funkce SQLBindParameter byla volána parametrem ParameterValuePtr nastavená na ukazatel null, StrLen_or_IndPtr není nastavena na SQL_NULL_DATA nebo SQL_DATA_AT_EXEC a InputOutputType není nastavena na SQL_PARAM_OUTPUT, takže počet parametrů zadaných v sqlBindParameter byl větší než počet parametrů v příkazu SQL obsažený v *StatementText.
07006 Porušení atributu omezeného datového typu Datová hodnota identifikovaná argumentem ValueType v SQLBindParameter pro vázaný parametr nelze převést na datový typ identifikovaný argumentem ParameterType v SQLBindParameter.

Hodnotu dat vrácenou pro parametr vázaný jako SQL_PARAM_INPUT_OUTPUT nebo SQL_PARAM_OUTPUT nelze převést na datový typ identifikovaný argumentem ValueType v SQLBindParameter.

(Pokud hodnoty dat pro jeden nebo více řádků nebylo možné převést, ale jeden nebo více řádků bylo úspěšně vráceno, vrátí tato funkce SQL_SUCCESS_WITH_INFO.)
07007 Porušení hodnoty parametru s omezeným přístupem Typ parametru SQL_PARAM_INPUT_OUTPUT_STREAM se používá pouze pro parametr, který odesílá a přijímá data v částech. Pro tento typ parametru není povolena vstupní vázaná vyrovnávací paměť.

K této chybě dojde, když je typ parametru SQL_PARAM_INPUT_OUTPUT a pokud *StrLen_or_IndPtr zadaný v sqlBindParameter není roven SQL_NULL_DATA, SQL_DEFAULT_PARAM, SQL_LEN_DATA_AT_EXEC(délka) nebo SQL_DATA_AT_EXEC.
07S01 Neplatné použití výchozího parametru Hodnota parametru nastavená pomocí SQLBindParameter byla SQL_DEFAULT_PARAM a odpovídající parametr neměl výchozí hodnotu.
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.
21S01 Seznam vložených hodnot neodpovídá seznamu sloupců * Příkaz StatementText obsahoval příkaz INSERT a počet hodnot, které se mají vložit, neodpovídá stupni odvozené tabulky.
21S02 Stupeň odvozené tabulky neodpovídá seznamu sloupců * Příkaz StatementText obsahoval příkaz CREATE VIEW a seznam nekvalifikovaných sloupců (počet sloupců zadaných pro zobrazení v argumentech identifikátoru sloupce příkazu SQL) obsahoval více názvů než počet sloupců v odvozené tabulce definované argumentem specifikace dotazu příkazu SQL.
22001 Řetězcová data, pravé zkrácení Přiřazení znaku nebo binární hodnoty ke sloupci vedlo ke zkrácení neprázdných dat znaků nebo binárních dat, která nemají hodnotu null.
22002 Požadovaná proměnná ukazatele, ale není zadána Data NULL byla vázána na výstupní parametr, jehož StrLen_or_IndPtr nastavena sqlBindParameter byl nulový ukazatel.
22003 Číselná hodnota mimo rozsah * Příkaz StatementText obsahoval příkaz SQL, který obsahoval vázaný číselný parametr nebo literál, a hodnota způsobila celý (na rozdíl od zlomků) část čísla, která se při přiřazení k přidruženému sloupci tabulky zkrátila.

Vrácení číselné hodnoty (jako číselné nebo řetězce) pro jeden nebo více vstupních/výstupních parametrů by způsobilo zkrácení celé části čísla (na rozdíl od zlomků).
22007 Neplatný formát data a času * Příkaz StatementText obsahoval příkaz SQL, který obsahoval strukturu data, času nebo časového razítka jako vázaného parametru, a parametr byl v uvedeném pořadí neplatným datem, časem nebo časovým razítkem.

Vstupní/výstupní nebo výstupní parametr byl vázán na strukturu jazyka C data, času nebo časového razítka a hodnota vráceného parametru byla neplatné datum, čas nebo časové razítko. (Funkce vrátí SQL_SUCCESS_WITH_INFO.)
22008 Přetečení pole Datetime * Příkaz StatementText obsahoval příkaz SQL, který obsahoval výraz datetime, který při výpočtu způsobil strukturu data, času nebo časového razítka, která byla neplatná.

Výraz datetime vypočítaný pro vstupní/výstupní nebo výstupní parametr způsobil neplatnou strukturu jazyka C data, času nebo časového razítka.
22012 Dělení nulou * Příkaz StatementText obsahoval příkaz SQL, který obsahoval aritmetický výraz, který způsobil dělení nulou.

Aritmetický výraz vypočítaný pro vstupní/výstupní nebo výstupní parametr způsobil dělení nulou.
22015 Přetečení pole intervalu *StatementText obsahoval přesný číselný nebo interval parametr, který při převodu na datový typ SQL intervalu způsobil ztrátu významných číslic.

*PříkazText obsahoval parametr intervalu s více než jedním polem, které při převodu na číselný datový typ ve sloupci nemělo v číselném datovém typu žádnou reprezentaci.

*StatementText obsahovala data parametrů, která byla přiřazena k typu SQL intervalu a nebyla žádná reprezentace hodnoty typu C v intervalu typu SQL.

Přiřazení vstupního/výstupního nebo výstupního parametru, který byl přesným číselným nebo intervalovým typem SQL typu intervalu jazyka C, způsobilo ztrátu významných číslic.

Když byl vstupní/výstupní nebo výstupní parametr přiřazen ke struktuře intervalu C, nebyla v datové struktuře intervalu žádná reprezentace dat.
22018 Neplatná hodnota znaku pro specifikaci přetypování *StatementText obsahoval typ jazyka C, který byl přesný nebo přibližný číselný typ, datum a čas nebo datový typ intervalu; typ SQL sloupce byl datový typ znaku; a hodnota ve sloupci nebyla platným literálem vázaného typu C.

Při vrácení vstupního/výstupního nebo výstupního parametru byl typ SQL přesný nebo přibližný číselný typ, datum a čas nebo datový typ intervalu; typ C byl SQL_C_CHAR; a hodnota ve sloupci nebyla platným literálem vázaného typu SQL.
22019 Neplatný řídicí znak * Příkaz StatementText obsahoval příkaz SQL, který obsahoval predikát LIKE s escape v klauzuli WHERE a délka řídicího znaku následující ESCAPE nebyla rovna 1.
22025 Neplatná řídicí sekvence * Příkaz StatementText obsahoval příkaz SQL, který v klauzuli WHERE obsahoval řídicí znak escape "LIKEpattern value" a znak následující za řídicím znakem ve vzorové hodnotě nebyl jedním z "%" nebo "_".
23000 Porušení omezení integrity * Příkaz StatementText obsahoval příkaz SQL, který obsahoval parametr nebo literál. Hodnota parametru byla null pro sloupec definovaný jako NOT NULL v přidruženém sloupci tabulky, duplicitní hodnota byla zadána pro sloupec omezený tak, aby obsahoval pouze jedinečné hodnoty, nebo došlo k porušení některého jiného omezení integrity.
24000 Neplatný stav kurzoru Kurzor byl umístěn na StatementHandlesqlFetch nebo SQLFetchScroll. Tato chyba je vrácena Správcem ovladačů, pokud SQLFetch nebo SQLFetchScroll nevrátil SQL_NO_DATA a ovladač je vrácen, pokud SQLFetch nebo SQLFetchScroll vrátil SQL_NO_DATA.

Kurzor byl otevřen, ale nebyl umístěn na PříkazHandle.

* Příkaz StatementText obsahoval umístěný příkaz update nebo delete a kurzor byl umístěn před začátkem sady výsledků nebo za koncem sady výsledků.
34000 Neplatný název kurzoru * Příkaz StatementText obsahoval umístěný příkaz update nebo delete a kurzor, na který odkazuje spuštěný příkaz, nebyl otevřen.
3D000 Neplatný název katalogu Název katalogu zadaný v části StatementText byl neplatný.
3F000 Neplatný název schématu Název schématu zadaný v části StatementText byl neplatný.
40001 Selhání serializace Transakce byla vrácena zpět kvůli vzájemnému zablokování prostředku s jinou transakcí.
40003 Neznámé dokončování příkazů Přidružené připojení se nezdařilo během provádění této funkce a stav transakce nelze určit.
42000 Chyba syntaxe nebo porušení přístupu * Příkaz StatementText obsahoval příkaz SQL, který nebyl předparovatelný nebo obsahoval chybu syntaxe.

Uživatel neměl oprávnění ke spuštění příkazu SQL obsaženého v příkazu *StatementText.
42S01 Základní tabulka nebo zobrazení již existují. * PříkazOvý text obsahoval příkaz CREATE TABLE nebo CREATE VIEW a zadaný název tabulky nebo zobrazení již existuje.
42S02 Základní tabulka nebo zobrazení nebyly nalezeny. * Text příkazuOBSAHOVAL PŘÍKAZ DROP TABLE nebo DROP VIEW a zadaný název tabulky nebo název zobrazení neexistuje.

* Příkaz StatementText obsahoval příkaz ALTER TABLE a zadaný název tabulky neexistoval.

* Příkaz StatementText obsahoval příkaz CREATE VIEW a název tabulky nebo zobrazení definovaný specifikací dotazu neexistoval.

* Příkaz StatementText obsahoval příkaz CREATE INDEX a zadaný název tabulky neexistoval.

* Příkaz StatementText obsahoval příkaz GRANT nebo REVOKE a zadaný název tabulky nebo název zobrazení neexistuje.

* Text příkazu StatementText obsahoval příkaz SELECT a zadaný název tabulky nebo název zobrazení neexistuje.

* Příkaz StatementText obsahoval příkaz DELETE, INSERT nebo UPDATE a zadaný název tabulky neexistuje.

* Příkaz StatementText obsahoval příkaz CREATE TABLE a tabulku zadanou v omezení (odkazující na jinou tabulku než vytvořenou) neexistovala.

* Příkaz StatementText obsahoval příkaz CREATE SCHEMA a zadaný název tabulky nebo název zobrazení neexistuje.
42S11 Index již existuje. * Příkaz StatementText obsahoval příkaz CREATE INDEX a zadaný název indexu již existoval.

* Příkaz StatementText obsahoval příkaz CREATE SCHEMA a zadaný název indexu již existoval.
42S12 Index nebyl nalezen. * Příkaz StatementText obsahoval příkaz DROP INDEX a zadaný název indexu neexistoval.
42S21 Sloupec již existuje. * Příkaz StatementText obsahoval příkaz ALTER TABLE a sloupec zadaný v klauzuli ADD není jedinečný nebo identifikuje existující sloupec v základní tabulce.
42S22 Sloupec nebyl nalezen. * Příkaz StatementText obsahoval příkaz CREATE INDEX a jeden nebo více názvů sloupců zadaných v seznamu sloupců neexistoval.

* Příkaz StatementText obsahoval příkaz GRANT nebo REVOKE a zadaný název sloupce neexistuje.

* PříkazOvý text obsahoval příkaz SELECT, DELETE, INSERT nebo UPDATE a zadaný název sloupce neexistoval.

* Příkaz StatementText obsahoval příkaz CREATE TABLE a sloupec zadaný v omezení (odkazující na jinou tabulku než vytvořenou) neexistoval.

* Příkaz StatementText obsahoval příkaz CREATE SCHEMA a zadaný název sloupce neexistoval.
44000 PORUŠENÍ FUNKCE CHECK OPTION Argument StatementText obsahoval příkaz INSERT provedený u zobrazené tabulky nebo tabulky odvozené ze zobrazené tabulky vytvořené zadáním příkazu CHECK OPTION, aby jeden nebo více řádků ovlivněných příkazem INSERT již nebyly v zobrazené tabulce přítomny.

Argument StatementText obsahoval příkaz UPDATE provedený u zobrazené tabulky nebo tabulky odvozené ze zobrazené tabulky vytvořené zadáním PŘÍKAZU CHECK OPTION, aby jeden nebo více řádků ovlivněných příkazem UPDATE již nebyly v zobrazené tabulce přítomny.
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 byla volána a před dokončením provádění byla volána funkce SQLCancel nebo SQLCancelHandle pro PříkazHandle. Pak byla funkce znovu volána v StatementHandle.

Funkce byla volána a před dokončením provádění byla volána funkce SQLCancel neboSQLCancelHandlez jiného vlákna v aplikaci s více vlákny.
HY009 Neplatné použití ukazatele null (DM) *StatementText byl ukazatel null.
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 SQLExecDirect .

(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) 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.
HY090 Neplatná délka řetězce nebo vyrovnávací paměti (DM) Argument TextLength byl menší nebo roven 0, ale nerovná se SQL_NTS.

Hodnota parametru nastavená pomocí sqlBindParameter byla nulovým ukazatelem a hodnota délky parametru nebyla 0, SQL_NULL_DATA, SQL_DATA_AT_EXEC, SQL_DEFAULT_PARAM nebo menší než nebo rovna SQL_LEN_DATA_AT_EXEC_OFFSET.

Hodnota parametru nastavená pomocí SQLBindParameter nebyla nulovým ukazatelem; datový typ C byl SQL_C_BINARY nebo SQL_C_CHAR; a hodnota délky parametru byla menší než 0, ale nebyla SQL_NTS, SQL_NULL_DATA, SQL_DATA_AT_EXEC, SQL_DEFAULT_PARAM nebo menší než nebo rovna SQL_LEN_DATA_AT_EXEC_OFFSET.

Hodnota délky parametru vázaná sqlBindParameter byla nastavena na SQL_DATA_AT_EXEC; Typ SQL byl buď SQL_LONGVARCHAR, SQL_LONGVARBINARY nebo dlouhý datový typ specifický pro zdroj dat; a typ SQL_NEED_LONG_DATA_LEN informací v SQLGetInfo byl "Y".
HY105 Neplatný typ parametru Hodnota zadaná pro argument InputOutputType v SQLBindParameter byla SQL_PARAM_OUTPUT a parametr byl vstupní parametr.
HY109 Neplatná pozice kurzoru * Příkaz StatementText obsahoval umístěný příkaz update nebo delete a kurzor byl umístěn (pomocí SQLSetPos nebo SQLFetchScroll) na řádku, který byl odstraněn nebo nelze načíst.
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.
HYC00 Nepovinná funkce není implementována. Ovladač ani zdroj dat nepodporuje kombinaci aktuálních nastavení atributů SQL_ATTR_CONCURRENCY a SQL_ATTR_CURSOR_TYPE příkazu.

Atribut příkazu SQL_ATTR_USE_BOOKMARKS byl nastaven na SQL_UB_VARIABLE a atribut příkazu SQL_ATTR_CURSOR_TYPE byl nastaven na typ kurzoru, pro který ovladač nepodporuje záložky.
HYT00 Vypršel časový limit. Platnost časového limitu dotazu vypršela, než zdroj dat vrátil sadu výsledků. Časový limit je nastavený prostřednictvím sqlSetStmtAttr SQL_ATTR_QUERY_TIMEOUT.
HYT01 Vypršení časového limitu 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

Zavoláte SQLExecDirect k odeslání příkazu SQL do zdroje dat. Další informace o přímém spuštění naleznete v tématu Přímé spuštění. Ovladač upraví příkaz tak, aby používal formulář SQL, který zdroj dat používá, a pak ho odešle do zdroje dat. Ovladač konkrétně upraví řídicí sekvence použité k definování určitých funkcí v SQL. Syntaxi řídicích sekvencí naleznete v tématu Řídicí sekvence v rozhraní ODBC.

Do příkazu SQL můžete zahrnout jednu nebo více značek parametrů. Pokud chcete zahrnout značku parametru, vložte do příkazu SQL na odpovídající pozici otazník (?). Informace oparametrch

Po úspěšném volání sqlExecDirect , který vrátí sadu výsledků (například z příkazu SELECT ), je popisovač příkazu umístěn před prvním řádkem sady výsledků. Potom můžete volat SQLFetch nebo SQLFetchScroll načíst řádky, nebo volat SQLRowCount určit počet ovlivněných řádků pro příkazy INSERT, UPDATE nebo DELETE .

Pokud je příkaz SQL příkazEM SELECT a nazýváte SQLSetCursorName pro přidružení kurzoru k příkazu, ovladač použije zadaný kurzor. V opačném případě ovladač vygeneruje název kurzoru.

Pokud je zdroj dat v režimu ručního potvrzení (vyžaduje explicitní inicializaci transakce) a transakce ještě nebyla inicializována, ovladač zahájí transakci před odesláním příkazu SQL. Další informace najdete v tématu Manual-Commit Režim.

Pokud k odeslání příkazu COMMIT nebo ROLLBACK použijete SQLExecDirect, nebude mezi produkty DBMS interoperabilní. Chcete-li potvrdit nebo vrátit transakce zpět, zavolejte SQLEndTran.

Pokud sqlExecDirect narazí na parametr data-at-execution, vrátí SQL_NEED_DATA. Odešle data pomocí SQLParamData a SQLPutData. Viz SQLBindParameter, SQLParamData, SQLPutData a Odesílání dlouhých dat.

Pokud SQLExecDirect spustí hledanou aktualizaci, vložení nebo odstranění příkazu, který nemá vliv na žádné řádky ve zdroji dat, volání sqlExecDirect vrátí SQL_NO_DATA.

Pokud je hodnota atributu příkazu SQL_ATTR_PARAMSET_SIZE větší než 1 a příkaz SQL obsahuje alespoň jednu značku parametru, sqlExecDirect spustí příkaz SQL jednou pro každou sadu hodnot parametrů z polí odkazovaných argumentem ParameterValuePointer ve volání SQLBindParameter. Další informace naleznete v tématu Pole hodnot parametrů.

Pokud jsou záložky zapnuté a spustí se dotaz, který nemůže podporovat záložky, ovladač by se měl pokusit převést prostředí na ten, který podporuje záložky změnou hodnoty atributu a vrácením SQLSTATE 01S02 (změna hodnoty možnosti). Pokud atribut nelze změnit, ovladač by měl vrátit hodnotu SQLSTATE HY024 (neplatná hodnota atributu).

Poznámka:

Při použití sdružování připojení nespouštět příkazy SQL, které mění databázi nebo kontext databáze, jako je příkaz databáze USE na SQL Serveru, který změní katalog používaný zdrojem dat.

Příklad kódu

Viz SQLBindCol, SQLGetData a ukázkový program ODBC.

Informace o Podívejte se
Vytvoření vazby vyrovnávací paměti ke sloupci v sadě výsledků SQLBindCol – funkce
Zrušení zpracování příkazů SQLCancel – funkce
Provedení operace potvrzení nebo vrácení zpět FUNKCE SQLEndTran
Spuštění připraveného příkazu SQL FUNKCE SQLExecute
Načítání více řádků dat Funkce SQLFetch
Načtení bloku dat nebo procházení sady výsledků SQLFetchScroll – funkce
Vrácení názvu kurzoru FUNKCE SQLGetCursorName
Načtení části nebo celého sloupce dat Funkce SQLGetData
Vrácení dalšího parametru pro odesílání dat pro SQLParamData – funkce
Příprava příkazu pro spuštění Funkce SQLPrepare
Odesílání dat parametrů v době provádění FUNKCE SQLPutData
Nastavení názvu kurzoru FUNKCE SQLSetCursorName
Nastavení atributu příkazu FUNKCE SQLSetStmtAttr

Referenční informace k rozhraní API ODBC
Soubory hlaviček ODBC