Promotic
WikipediaLinkedInYoutubeTwitterFacebook

DbExecute - metoda objektu PmAdo

Popis:
Provede příkaz zadaný v syntaxi jazyka SQL.
Syntaxe:
DbExecute(sId As String, sCommand As String, sParams As String) As Object
Volání:
Set oRecordset = oDb.DbExecute(sId, sCommand, sParams)
Parametry:
sId(String) Jednoznačný identifikátor, pod kterým si objekt PmAdo zapamatuje výsledná data v podobě AdoRecordset.

Pokud je uveden prázdný řetězec (""), potom se SQL příkaz sice provede a data v podobě objektu AdoRecordset jsou vrácena, ale objekt PmAdo si je nebude pamatovat. Je to výhodné zejména v případech, kdy ve skriptu je potřeba provést SQL dotaz a data ve skriptu ihned zpracovat s tím, že objekt AdoRecordset se ihned poté uvolní.

Pokud příkaz výsledná data vůbec nevrací, potom se rovněž uvádí prázdný řetězec.
sCommand(String) Většinou příkaz v syntaxi jazyka SQL (INSERT, UPDATE, DELETE, atd.), který nevrací data v podobě AdoRecordset. Může ale také také vracet data v podobě objektu AdoRecordset a obsahovat SQL dotaz SELECT, název tabulky, volání uložené procedury, název nebo URL adresa souboru obsahující uložený objekt AdoRecordset.
sParams(String) Dodatečné parametry metody DbExecute. Údaje s přiřazenou hodnotou jsou zde odděleny středníkem, například "command:text;execute:norecords;".
"command:xxx;" (nepovinné) - Určuje, jak má příslušný ADO Provider vyhodnotit parametr sSource, zejména pokud obsahuje něco jiného, než dotaz/příkaz v syntaxi jazyka SQL (např. SELECT, INSERT, atd.).
text (přednastaveno) - Určuje, že ADO Provider má vyhodnotit parametr sSource jako textový zápis příkazu. Odpovídá hodnodě ADO adCmdText.
table - Určuje, že ADO Provider má vygenerovat SQL dotaz tak, že budou vráceny všechny záznamy databázové tabulky, jejíž název je uvedené v parametru sSource. Odpovídá hodnodě ADO adCmdTable.
storedproc - Určuje, že ADO Provider má vyhodnotit parametr sSource jako uloženou proceduru. Odpovídá hodnodě ADO adCmdStoredProc.
file - Určuje, že uložený AdoRecordset má být vyčten ze souboru, jehož název je uvedený v parametru sSource. Odpovídá hodnodě ADO adCmdFile.
tabledirect - Určuje, že ADO Provider má vrátit všechny záznamy databázové tabulky, jejíž název je uvedené v parametru sSource. Odpovídá hodnodě ADO adCmdTableDirect.
unknown - Určuje, že typ příkazu v parametru sSource není známý. ADO Provider se jej pokusí zjistit sám, ale spotřebuje se tím zbytečně čas. Odpovídá hodnodě ADO adCmdUnknown.
"execute:xxx;" (nepovinné) - Určuje, jak má příslušný ADO Provider provést SQL dotaz. Implicitní je synchronní dotaz, tzn. že metoda čeká na výsledek operace.
async - Asynchronní dotaz, tzn. že metoda nečeká na výsledek operace. Odpovídá hodnodě ADO adAsyncExecute.
asyncfetch - Určuje, že řádky určené vlastností ADO Recordset.CacheSize se mají načíst synchronně, a zbývající řádky se mají dočíst asynchronně. Odpovídá hodnodě ADO adAsyncFetch.
asyncfetchnonblocking - Určuje, že hlavní vlákno (thread) nebude nikdy blokováno při čtení. Pokud požadovaný řádek nebyl načten, ukazovátko aktuálního bude přesunuto na konec. Odpovídá hodnodě ADO adAsyncFetchNonBlocking.
norecords - Určuje, že volaný dotaz/příkaz nevrací žádná data. Pokud ano, data budou zahozena a nebudou vrácena (žádný AdoRecordset hodnota Nothing). Odpovídá hodnodě ADO adExecuteNoRecords.
record - Určuje, že volaný dotaz/příkaz vrací jeden řádek, který má být vrácen v podobě objektu AdoRecord. Odpovídá hodnodě ADO adExecuteRecord.
Vrácená hodnota:
Vrací výsledná data v podobě AdoRecordset (množina záznamů), pokud vůbec daný příkaz data vrací.
Poznámka:
Objekt ADO Record:

V závislosti na konkrétním ADO Provider se může stát, že jednořádkový výsledek SQL dotazu nebude vrácen v podobě objektu AdoRecordset s jedním záznamem, ale v podobě objektu AdoRecord, představujícího jeden řádek. Není to ale typické pro nejběžněji užívané ADO Provider. Objekt AdoRecord je spíše vrácen při explicitních operacích, kdy z exitujícího objektu AdoRecordset se vrátí konkrétní záznam v podobě objektu AdoRecord. Objekt AdoRecord skládá z objektů AdoField stejně jako objekt AdoRecordset, na rozdíl od něj však nepodporuje metody pro přesun pozice aktuálního záznamu (např. MoveFirst). V dokumentaci se pro zjednodušení bude uvádět pouze běžnější vracený objekt AdoRecordset, přestože v určitých ojedinělých případech může být vrácen i objekt AdoRecord.

Příklad:
Přidání nové věty do tabulky ("table1") v objektu PmAdo ("/TestAdoDb").
Dim oDb
Set oDb = pMe.Pm("/TestAdoDb")
oDb.DbExecute "", "INSERT table1 (name, value) VALUES ('pi', 3.14)", ""
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice