Sql commit, Sql rollback, 8 a c cessi a tabelle con istr uzioni sql – HEIDENHAIN TNC 320 (340 55x-04) ISO programming Manuale d'uso
Pagina 232

232
Programmazione: parametri Q
8.8 A
c
cessi a tabelle con istr
uzioni SQL
SQL COMMIT
SQL COMMIT
trasferisce tutte le righe presenti nel result-set di nuovo
nella tabella. Un blocco impostato con SELCT...FOR UPDATE viene
annullato.
L'handle predefinito con l'istruzione SQL SELECT perde la propria
validità.
U
Nr. parametro per risultato
: parametro Q in cui il
server SQL fornisce il risultato:
0: nessun errore verificatosi
1: errore verificatosi (handle errato o stesse voci nelle
colonne in cui sono richieste voci univoche)
U
Banca dati: ID di accesso SQL
: parametro Q con
l'handle per l'identificazione del result-set (vedere
anche SQL SELECT).
SQL ROLLBACK
L'esecuzione di SQL ROLLBACK dipende dalla programmazione
dell'INDICE:
INDICE
non programmato: il result-set non viene riscritto nella
tabella (eventuali modifiche/integrazioni vanno perse). La
transazione viene conclusa; l'handle predefinito con SQL SELECT
perde la propria validità. Applicazione tipica: si conclude una
transazione con accessi esclusivamente in lettura.
INDICE
programmato: la riga indicizzata rimane invariata; tutte le
altre righe vengono eliminate dal result-set. La transazione non
viene conclusa. Un blocco impostato con SELCT...FOR UPDATE
rimane invariato per la riga indicizzata; per tutte le altre righe viene
ripristinato.
U
Nr. parametro per risultato
: parametro Q in cui il
server SQL fornisce il risultato:
0: nessun errore verificatosi
1: errore verificatosi (handle errato)
U
Banca dati: ID di accesso SQL
: parametro Q con
l'handle per l'identificazione del result-set (vedere
anche SQL SELECT).
U
Banca dati: indice per risultato SQL
: riga che deve
rimanere nel result-set. Il numero di riga viene
indicato direttamente o si programma il parametro Q
che contiene l'indice.
Esempio:
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
Esempio:
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