Transakcja – HEIDENHAIN TNC 640 (34059x-05) Instrukcja Obsługi
Strona 334
Programowanie: parametry Q
9.9
Dostępy do tabeli z instrukcjami SQL
9
334
TNC 640 | Instrukcja obsługi dla operatora HEIDENHAIN-dialog tekstem otwartym | 5/2015
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
specyfikowany parametr Q. Parametr Q zostaje
przyporządkowany do kolumny – zostaje on połączony (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...). Wyselekcjonowanie
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 Odzytać wiersze z Result-set, zmieniać i/lub wstawić nowy
wiersz: – przejąć wiersz z Result-sets do parametrów Q
programu NC (SQL FETCH...) – przygotować zmiany w
parametrach Q i transferować do wiersza Result-set (SQL
UPDATE...
) – przygotować nowy wiersz tabeli w parametrach Q
i przekazać jako nowy wiersz do Result-set (SQL INSERT...)
4 Zakończenie transakcji. – zapisy w tabeli zostają zmienione/
uzupełnione: dane są przejmowane 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...). – zapisy tabeli
nie
zostały
zmienione/uzupełnione (tylko dostęp odczytu):ewentualne
blokowania są resetowane, 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.