Transakcja, 8 dost ęp do t abeli z instrukcjami sql – HEIDENHAIN TNC 320 (340 55x-05) ISO programming Instrukcja Obsługi

Strona 232

Advertising
background image

232

Programowanie: Q-parametry

8.8 Dost

ęp do t

abeli 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.

Advertising