Sql commit, Sql rollback, Sql commit sql rollback – HEIDENHAIN TNC 320 (340 55x-04) ISO programming Instrukcja Obsługi
Strona 232: 8 dost ęp do t abeli z instrukcjami sql
232
Programowanie: Q-parametry
8.8 Dost
ęp do t
abeli z instrukcjami SQL
SQL COMMIT
SQL COMMIT transferuje wszystkie istniejące w Result-set wiersze z
powrotem do tabeli. Wyznaczona z SELCT...FOR UPDATE blokada
zostaje anulowana.
Nadany w instrukcji SQL SELECT handle traci swoją ważność.
U
Nr parametru dla wyniku: parametr Q, w którym
serwer SQL melduje z powrotem wynik:
0: nie pojawił się błąd
1: wystąpił błąd (niewłaściwy handle lub podobne
zapisy w kolumnach, w których konieczne są
jednoznaczne zapisy)
U
Baza danych: SQL-dostęp-ID: parametr Q, z handle
dla identyfikacji Result-set (patrz także SQL
SELECT).
SQL ROLLBACK
Wykonanie SQL ROLLBACK zależy od tego, czy INDEKS jest
zaprogramowany:
INDEKS nie zaprogramowany: Result-set nie zostaje zapisany do
tabeli (ewentualne zmiany/uzupełnienia zostają zatracone).
Transakcja zostaje zakończona – nadany w SQL SELECT handle
traci swoją ważność. Typowe zastosowanie: operator zamyka
transakcję z wyłącznymi dostępami czytania.
INDEKS jest zaprogramowany: indeksowany wiersz zostaje
zachowany – wszystkie inne wiersze zostają usunięte z Result-set.
Transakcja nie zostaje zakończona. Wyznaczona z SELCT...FOR
UPDATE blokada pozostaje zachowana dla indeksowanego
wiersza – dla wszystkich innych wierszy zostaje ona skasowana.
U
Nr parametru dla wyniku: parametr Q, w którym
serwer SQL melduje z powrotem wynik:
0: nie pojawił się błąd
1: wystąpił błąd (błędny handle)
U
Baza danych: SQL-dostęp-ID: parametr Q, z handle
dla identyfikacji Result-set (patrz także SQL
SELECT).
U
Baza danych: indeks odnośnie wyniku SQL: wiersz,
który ma pozostać w obrębie Result-set. Numer
wiersza zostaje podawany bezpośrednio lub operator
programuje Q-parametr, zawierający indeks.
Przykład:
11 SQL BIND Q881
"TAB_EXAMPLE.MESS_NR"
12 SQL BIND Q882 "TAB_EXAMPLE.MESS_X"
13 SQL BIND Q883 "TAB_EXAMPLE.MESS_Y"
14 SQL BIND Q884 "TAB_EXAMPLE.MESS_Z"
. . .
20 SQL Q5 "SELECT
MESS_NR,MESS_X,MESS_Y, MESS_Z FROM
TAB_EXAMPLE"
. . .
30 SQL FETCH Q1 HANDLE Q5 INDEX+Q2
. . .
40 SQL UPDATE Q1 HANDLE Q5 INDEX+Q2
. . .
50 SQL COMMIT Q1 HANDLE Q5
Przykład:
11 SQL BIND Q881
"TAB_EXAMPLE.MESS_NR"
12 SQL BIND Q882 "TAB_EXAMPLE.MESS_X"
13 SQL BIND Q883 "TAB_EXAMPLE.MESS_Y"
14 SQL BIND Q884 "TAB_EXAMPLE.MESS_Z"
. . .
20 SQL Q5 "SELECT
MESS_NR,MESS_X,MESS_Y, MESS_Z FROM
TAB_EXAMPLE"
. . .
30 SQL FETCH Q1 HANDLE Q5 INDEX+Q2
. . .
50 SQL ROLLBACK Q1 HANDLE Q5