SQL_execute

Internφ programovacφ jazykC/C++PascalSQL

function SQL_execute(var statement : string) : Boolean;
BOOL [cd_]SQL_execute([cdp_t cdp], const char * statement, uns32 * results);
function [cd_]SQL_execute([cdp : cdp_t]; statement : Pchar; var results) : Boolean;
function SQL_execute(IN statement CLOB) returns Boolean;

Parametry

statement p°φkaz jazyka SQL
results pole Φφsel, do nich₧ se zapφÜe informace o v²sledku operace
[cdp kontextovß prom∞nnß klienta]

Popis

Funkce vykonß p°φkaz jazyka SQL zadan² v parametru statement. P°i p°ekladu volßnφ tΘto funkce se nekontroluje smysluplnost SQL p°φkazu - p°φpadnß syntaktickß chyba p°φkazu se projevφ a₧ p°i b∞hu, kdy SQL server ohlßsφ, ₧e nem∙₧e splnit po₧adavek.

V parametru statement m∙₧e b²t vφce SQL p°φkaz∙ odd∞len²ch st°ednφkem. P°i volßnφ z vnit°nφho jazyka smφ b²t v parametru statement max. 12 SQL p°φkaz∙. Na rozdφl od volßnφ funkce z externφho jazyka nesmφ b²t ve statement pou₧it (ve smyslu p°φkazu) dotazov² v²raz SELECT - (dotaz se ve vnit°nφm jazyku otevφrß pomocφ funkce Open_sql_cursor).

P°i volßnφ funkce z vn∞jÜφho (externφho) jazyka je nutnΘ uvΘst v²stupnφ parametr results. Tφmto parametrem je pole 32-bitov²ch cel²ch Φφsel bez znamΘnka. Pole musφ obsahovat nejmΘn∞ tolik slo₧ek, kolik p°φkaz∙ jazyka SQL je zadßno v parametru statement, maximßln∞ vÜak 10. Volßnφ procedury se nebere jako jeden p°φkaz, ale uva₧ujφ se jednotlivΘ p°φkazy v nφ obsa₧enΘ. Pole musφ mφt svou prvnφ slo₧ku p°ed zavolßnφm inicializovanou hodnotou nula. Parametr results slou₧φ k zφskßnφ informacφ o v²sledku provßd∞nφ p°φkaz∙. Mß relevantnφ hodnotu pouze v p°φpad∞, ₧e funkce SQL_statement skonΦila ·sp∞Ün∞. Pokud byl proveden p°φkaz UPDATE, DELETE nebo INSERT, hodnotou p°φsluÜnΘho prvku pole je poΦet zpracovan²ch zßznam∙. Pokud byl proveden SELECT (nenφ SQL p°φkaz, lze ho vÜak zde pou₧φt pro otev°enφ dotazu), pak ve spodnφch dvou bajtech prvku pole je Φφslo otev°enΘho kurzoru a s otev°en²m kurzorem je mo₧nΘ dßle pracovat (stejn∞ jako by byl otev°en pomocφ funkce Open_cursor_direct). Otev°en² kurzor se zavφrß pomocφ funkce Close_cursor.

Tato funkce je dostupnß takΘ z jazyka SQL. Vyu₧φvß se v n∞m ve dvou p°φpadech: kdy₧ je t°eba SQL p°φkaz dynamicky sestavit v procedu°e ulo₧enΘ na serveru a pak provΘst nebo kdy₧ SQL p°φkaz nelze p°elo₧it v dob∞, kdy se p°eklßdß procedura, v nφ₧ je obsa₧en, proto₧e nap°φklad obsahuje odkazy na tabulky, kterΘ p°i p°ekladu jeÜt∞ neexistujφ.

Hodnota funkce

Funkce vracφ hodnotu FALSE, pokud se akci poda°ilo ·sp∞Ün∞ provΘst. V opaΦnΘm p°φpad∞ vracφ TRUE a povahu chyby lze zjistit volßnφm funkce Signalize.

P°φklad

if not Sql_execute("DELETE FROM Zamestnan WHERE Oddeleni=1") 
   then à

Viz