Transakcja, 9 dost ęp do tabeli z instrukcjami sql – HEIDENHAIN TNC 320 (340 55x-03) Instrukcja Obsługi
Strona 412
412
10 Programowanie: Q-parametry
10.9 Dost
ęp 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 parametr Q. 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 istniejących i/lub dołączanie
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.
– wpisy w tabeli zostały zmienione/uzupełnione: dane zostają
przejęte z Result-set do tabeli (pliku). Są one obecnie zapisane do
pamięci w pliku. Ewentualne blokady zostają anulowane, Result-
set zostaje zwolniony (SQL COMMIT...).
– wpisy w tabeli nie zostały zmienione/uzupełnione (tylko dostęp
czytania): ewentualne blokady zostają anulowane, Result-set
zostaje zwolniony (SQL ROLLBACK... BEZ INDEKSU).
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.