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


[Strona główna] [Wyjście] [Poprzedni] [Następny]