Transakcja, 9 dostp do tabeli z instrukcjami sql – HEIDENHAIN TNC 320 (340 551-01) Instrukcja Obsługi
Strona 350
350
10 Programowanie: Q parametry
10.9 Dostp do tabeli z instrukcjami SQL
Transakcja
Zasadniczo transakcja składa si z nast puj cych operacji:
–
Adresowanie tabeli (pliku), selekcjonowanie wierszy i transfer do
Result set.
–
Czytanie wierszy z Result set, zmiana i/lub wstawienie nowych
wierszy.
–
Zakończenie transakcji. W przypadku zmian/uzupełnień wiersze
z Result set zostaj przejmowane do tabeli (pliku).
Konieczne s jednakże dalsze operacje, aby móc dokonywać edycji
zapisów tabeli w programie NC i unikn ć równoległej zmiany tych
samych wierszy tabeli. Z tego wynika nast puj cy przebieg
transakcji:
1
Dla każdej kolumny, która ma być edytowana, zostaje
wyspecyfikowany Q parametr. Q parametr zostaje
przyporz dkowany kolumnie – zostaje on „przywi zany“ (SQL
BIND...).
2
Adresowanie tabeli (pliku), selekcjonowanie wierszy i transfer do
Result set. Dodatkowo definiujemy, które kolumny maj zostać
przej te do Result set (SQL SELECT...).
Operator może te wyselekcjonowane wiersze „zablokować“.
Wówczas inne procesy w systemie maj dost p czytania do tych
wierszy, ale nie mog zmienić zapisów tabeli. Należy zawsze
wtedy blokować wyselekcjonowane wiersze, kiedy dokonuje si
zmian (SQL SELECT ... FOR UPDATE).
3
Czytanie wierszy z Result set, zmiana i/lub wstawienie nowych
wierszy:
– Przej cie wiersza z Result set do Q parametrów programu NC
(SQL FETCH...)
– Przygotowanie zmian w Q parametrach i transfer do wiersza w
Result set (SQL UPDATE...)
– Przygotowanie nowego wiersza tabeli w Q parametrach i
przekazanie jako nowy wiersz do Result set (SQL INSERT...)
4
Zakończenie transakcji.
– Zapisy w tabeli zostały zmienione/uzupełnione: Dane z Result
set zostaj przejmowane do tabeli (pliku). S one obecnie
zapisane do pami ci w pliku. Ewentualne blokady zostaj
anulowane, Result set zostaje zwolniony (SQL COMMIT...).
– Zapisy w tabeli nie zostały zmienione/uzupełnione (tylko
dost p czytania): Ewentualne blokady zostaj anulowane,
Result set zostaje zwolniony (SQL ROLLBACK... OHNE
INDEX).
Można opracowywać kilka transakcji równolegle.
Prosz koniecznie zamkn ć rozpocz t transakcj
nawet jeśli wykorzystuje si wył cznie dost p czytania.
Tylko w ten sposób zapewnia si , iż zmiany/uzupełnienia
nie zostaj zatracone, blokady zostaj anulowane i
Result set zostaje zwolniony.