Promotic

DbExecute - metoda obiektu PmaAdo

Opis:
Wykona wprowadzone polecenie w składni języka SQL.
Składnia:
Object DbExecute(String sId, String sCommand, String sParams)
Parametry:
sId(String) Jednoznaczny identyfikator, pod którym obiekt PmaAdo utrzyma rezultat polecenia w formie obiektu AdoRecordset.
Jeżeli jest wprowadzony pusty łańcuch (""), wtedy polecenie SQL wprawdzie zostanie wykonane i rezultat w formie obiektu AdoRecordset zostanie zwrócony, lecz obiekt PmaAdo nie będzie go utrzymywać. To jest dogodne zwłaszcza w przypadkach, kiedy w skrypcie jest konieczne wykonać polecenie SQL i dane w skrypcie bezpośrednio opracować z tym, że obiekt AdoRecordset zostanie bezpośrednio po tym zwolniony.
Pusty łańcuch należy również wprowadzić, jeżeli wprowadzone polecenie wogóle nie zwraca dane wynikowe.
sCommand(String) Zazwyczaj polecenie w składni języka SQL (INSERT, UPDATE, DELETE, itd.), które nie zwraca danych w formie obiektu AdoRecordset.
Może jednak również zwracać dane w formie obiektu AdoRecordset i zawierać polecenie SQL SELECT, nazwę tabeli, wywołanie procedury składowanej, nazwa lub Adres URL pliku zawierającego zapisany obiekt AdoRecordset.
sParams(String) Dodatkowe parametry metody DbExecute. Dane są tutaj w formacie KeyVal, na przykład "command:text;execute:norecords;return:map;".
"command:xxx;" (opcjonalne) - Określa, w jaki sposób ADO Provider ma podsumować parametr sSource, zwłaszcza jeżeli zawiera coś innego, niż polecenie w składni języka SQL (np. SELECT, INSERT, itd.).
text (domyślnie) - Określa, że ADO Provider ma zastosować parametr sSource jako tekstowy zapis polecenia.
Odpowiada wartości ADO adCmdText.
table - Określa, że ADO Provider ma wytworzyć polecenie SQL w taki sposób, że zostaną zwrócone wszystkie rekordy tabeli bazodanowej, której nazwa jest przedstawiona w parametrze sSource.
Odpowiada wartości ADO adCmdTable.
storedproc - Określa, że ADO Provider ma zastosować parametr sSource jako procedurę składowaną.
Odpowiada wartości ADO adCmdStoredProc.
file - Określa, że zapisany obiekt AdoRecordset ma zostać wczytany z pliku, którego nazwa jest przedstawiona w parametrze sSource.
Odpowiada wartości ADO adCmdFile.
tabledirect - Określa, że ADO Provider ma zwrócić wszystkie rekordy tabeli bazodanowej w bazie danych, której nazwa jest przedstawiona w parametrze sSource.
Odpowiada wartości ADO adCmdTableDirect.
unknown - Określa, że tzp polecenia w parametrze sSource nie jest znany. ADO Provider spróbuje sam określić jego typ, lecz wymaga to dodatkowego czasu.
Odpowiada wartości ADO adCmdUnknown.
"execute:xxx;" (opcjonalne) - Określa, w jaki sposób ADO Provider ma wykonać polecenie SQL. Domyślnym jest polecenie synchroniczne, to znaczy, że metoda oczekuje na wynik operacji.
async - Asynchroniczne polecenie, to znaczy, że metoda nie czeka na wynik operacji.
Odpowiada wartości ADO adAsyncExecute.
asyncfetch - Określa, że wiersze określone w właściwości ADO Recordset.CacheSize mają być odczytywane synchronicznie, i pozostające wiersze majązostać odczytane asynchronicznie.
Odpowiada wartości ADO adAsyncFetch.
asyncfetchnonblocking - Określa, że główny wątek (thread) nie będzie nigdy blokowane podczas odczytu. Jeżeli wymagany wiersz nie zosta wczytany, wtedy wskaźnik bieżącego rekordu zostanie przesunięty na koniec.
Odpowiada wartości ADO adAsyncFetchNonBlocking.
norecords - Określa, że wywołane zapytanie/polecenie nie zwraca żadnych danych. Jeżeli polecenie zwraca dane, wtedy zostaną one zignorowane i nie zostaną zwrócone (żaden obiekt AdoRecordset = wartość null dla JavaScript lub Nothing dla VBScript).
Odpowiada wartości ADO adExecuteNoRecords.
record - Określa, że wywołane zapytanie/polecenie zwraca jeden wiersz, który ma zostać zwrócony w formie obiektu AdoRecord.
Odpowiada wartości ADO adExecuteRecord.
"return:xxx;" (opcjonalne) - Określa, czy wartość zwrotna metody ma być mapą z większą ilością zwróconych wartości równocześnie (nowy sposób) lub tylko jedną wartością (stary sposób).
Jeżeli nie jest ustawione, wtedy zostanie zastosowany stary sposób.
map - Zwraca mapę (obiekt PmMap), która zawiera większą ilość zwróconych wartości równocześnie (nowy sposób) (np. Result, AffectedRows, ErrorCode, ErrorText).
Wartość zwrotna:
Nowy sposób: Zwraca obiekt PmMap z wartościami w następujących pozycjach:
- "Result": rezultat polecenia w formie obiektu AdoRecordset lub w przypadku błędu wartość null dla JavaScript lub Nothing dla VBScript (jeżeli wogóle dany polecenie zwraca dane)
- "AffectedRows": Ilość dotkniętych wierszy w przypadku dodania, usunięcia lub zmiany wierszy danym poleceniem
- "ErrorCode": liczbowy kod błędu, gdzie wartość 0 oznacza pomyślne wykonanie metody (bez błędu)
- "ErrorText": opis ewentualnego błędu


Stary sposób: Zwraca rezultat polecenia w formie obiektu AdoRecordset lub w przypadku błędu wartość null dla JavaScript lub Nothing dla VBScript (jeżeli wogóle dany polecenie zwraca dane).
Notatka:
Obiekt ADO Record:
W zależności od konkretnego ADO Provider może się wydarzyć, że jednowierszowy wynik polecenia SQL nie zostanie zwrócony w formie obiektu AdoRecordset z jednym rekordem, lecz w postaci w formie obiektu AdoRecord (przedstawia jeden wiersz). Jednak zachowanie takie nie jest typowym dla najczęściej stosowanych ADO Provider. Obiekt AdoRecord jest zwracany raczej w przypadku jawnych operacji, kiedy z istniejącego obiektu AdoRecordset jest zwracany konkretny rekord w formie obiektu AdoRecord. Obiekt AdoRecord składa się z obiektów AdoField tak samo jak obiekt AdoRecordset, jedank w odróżnieniu od niego nie wspiera metody do zmiany pozycji bieżącego rekordu (np. MoveFirst).
W celu uproszczenia w dokumentacji PROMOTIC będziem przedstawiany powszechnie zwracany obiekt AdoRecordset, chociaż w okreĺonych pojedyńczych przypadkach może zostać zwracany także obiekt AdoRecord.
Przykład:
Doda nowy rekord do tabeli ("table1") w obiekcie PmaAdo ("/TestAdoDb").
JavaScriptVBScriptWybierz oraz skopiuj do schowka

var oDb = pMe.Pm("/TestAdoDb");
oDb.DbExecute("", "INSERT table1 (name, value) VALUES ('pi', 3.14)", "");

Historia:
Pm8.01.00: Wytworzono
Pm8.03.22: Zwraca obiekt PmMap z wartościami w pozycjach "Result", "AffectedRows", "ErrorCode" oraz "ErrorText".
© MICROSYS, spol. s r.o.