Set oRecordset = oDb.DbExecute(sId, sCommand, sParams)
sId | (String) Jednoznaczny identyfikator, pod którym obiekt PmAdo utrzyma rezultat polecenia w formie 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 PmAdo nie będzie go utrzymywać. To jest dogodne zwłaszcza w przypadkach, kiedy w skrypcie trzeba wykonać polecenie SQL i dane w skrypcie bezpośrednio opracować z tym, że obiekt AdoRecordset zostanie bezpośrednio po tym zwolniony. Jeżeli polecenie nie zwraca danych wynikowych, wtedy również jest zwracany pusty łańcuch. |
---|---|
sCommand | (String) W większości polecenie w składni języka SQL (INSERT, UPDATE, DELETE, itd.), które nie zwraca danych w formie 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 tablicy bazy danych, 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 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 danej tablicy 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 rodzaj, 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, tzn. że metoda oczekuje na wynik operacji. async - Asynchroniczne polecenie, tzn. 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łówne włókno (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 AdoRecordset wartość Nothing). 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ę (PmMap), która zawiera większą ilość zwróconych wartości równocześnie (nowy sposób) (np. Result, AffectedRows, ErrorCode, ErrorText). |
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 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 będziem przedstawiany powszechnie zwracany obiekt AdoRecordset, chociaż w okreĺonych pojedyńczych przypadkach może zostać zwracany także obiekt AdoRecord.
Dim oDb
Set oDb = pMe.Pm("/TestAdoDb")
oDb.DbExecute "", "INSERT table1 (name, value) VALUES ('pi', 3.14)", ""