Sql commit, Sql rollback, Sql commit sql rollback – HEIDENHAIN TNC 320 (340 55x-05) ISO programming Uživatelská příručka
Stránka 240
240
Programování: Q-parametry
8.8 P
řístupy k t
a
bulkám s instrukcemi SQL-
SQL COMMIT
SQL COMMIT převádí všechny řádky z výsledkové sady zpátky do
tabulky. Také se zruší zablokování nastavené pomocí SELECT...FOR
UPDATE.
Handle přidělený během instrukce SQL SELECT ztrácí svoji platnost.
U
Číslo parametru pro výsledek: Q-parametr, kterým
server SQL hlásí zpátky výsledek:
0: nedošlo k žádné chybě
1: došlo k chybě (chybný Handle nebo stejné
záznamy ve sloupcích, v nichž jsou požadovány
jednoznačné záznamy).
U
Databanka: ID přístupu SQL : Q-parametr, obsahující
Handle pro identifikaci výsledkové sady (viz také SQL
SELECT).
SQL ROLLBACK
Provedení SQL ROLLBACK závisí na tom, zda je naprogramovaný
INDEX:
INDEX není programovaný: výsledková sada se nezapíše zpět do
tabulky (případné změny / doplnění se ztratí) Transakce se ukončí -
Handle přidělený během SQL SELECT ztratí svoji platnost. Typické
použití: ukončíte transakci s výlučně čtecím přístupem.
INDEX je naprogramovaný: indexovaná řádka zůstane zachovaná
– všechny ostatní řádky se z výsledkové sady odstraní. Transakce
se neuzavře. Blokování nastavené pomocí SELECT...FOR
UPDATE zůstane pro indexované řádky zachované – pro všechny
ostatní řádky se zruší.
U
Číslo parametru pro výsledek: Q-parametr, kterým
server SQL hlásí zpátky výsledek:
0: nedošlo k žádné chybě
1: došlo k chybě (chybný Handle)
U
Databanka: ID přístupu SQL : Q-parametr, obsahující
Handle pro identifikaci výsledkové sady (viz také SQL
SELECT).
U
Databanka: index výsledku SQL: řádky, které mají
zůstat ve výsledkové sadě. Číslo řádku se uvádí
přímo nebo naprogramujte Q-parametr, který Index
obsahuje.
Příklad:
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
Příklad:
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