Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

25/08/2001 1 Bazy danych II Piotr Górczyński Transakcje.

Podobne prezentacje


Prezentacja na temat: "25/08/2001 1 Bazy danych II Piotr Górczyński Transakcje."— Zapis prezentacji:

1 25/08/ Bazy danych II Piotr Górczyński Transakcje

2 25/08/ Transakcyjność Transakcja umożliwia powrót do sytuacji przed jej rozpoczęciem, jeśli w jej trakcie wystąpi błąd Podstawowy mechanizm baz danych Cechy transakcji: atomowość – w ramach jednej transakcji wykonują się wszystkie operacje albo żadna spójność – transakcja nie narusza spójności danych izolacja – transakcja nie wie o działaniu innych transakcji trwałość – po zakończeniu transakcji jej skutki są trwałe

3 25/08/ Przykład: księgowanie Dekret księgowy musi być zapisany na wszystkich kontach zgodnie z definicją księgowań Nie dopuszczalna jest sytuacja, że zapiszemy pieniądze np. na koncie zobowiązań, a nie zapiszemy na koncie, z którego to zobowiązanie wyniknęło 001 WnMA WnMA 100

4 25/08/ Realizacja Musimy wykonać następujące operacje: INSERT INTO [KONTO]( [KONTO], [WN], [MA]) VALUES( '001', 100, NULL) INSERT INTO [KONTO]( [KONTO], [WN], [MA]) VALUES( '002', NULL, 100) Gdyby druga operacja się nie powiodła (na przykład została wyjęta wtyczka komputera), księgowania byłyby błędne.

5 25/08/ Transakcja Rozpoczynamy transakcję poleceniem BEGIN TRANSACTION Od tej pory wszystkie operacje, które wykonamy nie będą widziane przez innych użytkowników. Operacje będą widoczne tylko dla nas, ściślej mówiąc będą widoczne w ramach naszej sesji połączenia z bazą danych. Wynik naszych operacji stanie się widoczny dla innych użytkowników po wykonaniu polecenia COMMIT TRANSACTION.

6 25/08/ Transakcja cd. Jeżeli w trakcie wykonywania operacji wystąpiłby błąd, to możemy wszystkie wycofać wykonując polecenie ROLLBACK TRANSACTION. Gdyby nastąpiło rozłączenie z serwerem, czyli zakończona zostałaby sesja użytkownika i nie nastąpiło wydanie polecenia COMMIT TRANSACTION, to serwer sam wykonałby polecenie ROLLBACK TRANSACTION.

7 25/08/ Realizacja BEGIN TRANSACTION INSERT INTO [KONTO]( [KONTO], [WN], [MA]) VALUES( '001', 100, NULL) INSERT INTO [KONTO]( [KONTO], [WN], [MA]) VALUES( '002', NULL, 100) COMMIT TRANSACTION

8 25/08/ Transakcje a obsługa błędów w VB Mechanizm obsługi błędów VB pozwala doskonale obsłużyć transakcje w bazie danych On Error Goto Obsluga Rozpoczynamy transakcje cn.StartTrans Wykonujemy operacje na bazie danych które maja być w jednej transakcji... Zatwierdzamy zmiany cn.CommitTrans Exit Sub Gdyby cos się nie powiodło, wycofujemy zmiany Obsluga: cn. RollbackTrans MsgBox Err.Number & ": " &_ Err.Description, vbCritical, "Błąd"

9 25/08/ Literatura Microsoft SQL Server Books Online


Pobierz ppt "25/08/2001 1 Bazy danych II Piotr Górczyński Transakcje."

Podobne prezentacje


Reklamy Google