P013
Przechwytywanie i obsługa błędów wykonania zapytań
funkcjonalnych - metoda Execute
Podczas wykonywania zapytań funkcjonalnych uruchamianych za pomoca akcji makr (zobacz P012) nie jest możliwa obsługa ich ewentualnych błędów wykonania (np. powtórzenia wartości w indeksie, zablokowania rekordów przez innego użytkownika).
Zapytania można uruchamiać w Basicu za pomocą metody Execute, która umożliwia przechwytywanie błędów i podjęcie w aplikacji stosownych kroków, np. wyświetlenie własnych, niestandardowych komunikatów. Poniżej można pobrać mały przykład:
Metodę Execute można również użyć do uruchomienia kilku zapytań funkcjonalnych objętych transakcją. Przykładowo: w bazie są uruchamiane dwa zapytania, gdzie pierwsze dopisuje rekordy w jednej tabeli, a drugie usuwa w innej. Całość operacji ma być traktowana "niepodzielnie", tzn. jakikolwiek błąd wykonania dowolnego z obu zapytań (np. zablokowanie tabeli przez innego użytkownika w sieci) powinien spowodować anulowanie wszystkich zmian. Poniżej podaję uproszczony "pseudo-algorytm":
On Error Goto blad
...
...
...BeginTrans
Zapytanie_dolacz_dane_do_Tabeli1.Execute (DB_FAILONERROR) ' dbFailOnError w Acc'97
Zapytanie_usun_dane_z_Tabeli2.Execute
(DB_FAILONERROR)
...CommitTrans
Exit Sub
blad:
...Rollback
MsgBox "Wystąpił błąd, wykonanie zapytań
anulowane."
Napisał: Stanley, 20 marca 1999, modyfikacja 7 lipca 1999
Źródło: Pomoc programu, opis
metody Execute