Sql commit, Sql rollback, 9 a ccessi a tabelle con istr uzioni sql – HEIDENHAIN TNC 320 (340 551-01) Manuale d'uso
Pagina 359

HEIDENHAIN TNC 320
359
1
0.9 A
ccessi a tabelle con istr
uzioni SQL
SQL COMMIT
SQL COMMIT
trasferisce di nuovo nella tabella tutte le righe presenti nel
result-set. Un blocco impostato con SELCT...FOR UPDATE viene
annullato.
L’handle assegnato con l’istruzione SQL SELECT perde la sua validità.
8
N. parametro per risultato
: parametro Q in cui il
server SQL inserisce il risultato:
0: nessun errore registrato
1: errore comparso (handle non corretto o
registrazioni uguali in colonne in cui sono richieste
registrazioni univoche)
8
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 del SQL ROLLBACK dipende da se è programmato l’INDICE:
INDICE
non programmato: Il result-set non viene riscritto nella
tabella (eventuali modifiche/completamenti vanno perduti). La
transazione viene chiusa – l’handle assegnato con l’istruzione SQL
SELECT
perde la sua validità. Applicazione tipica: Si chiude una
transazione con accessi esclusivamente di lettura.
INDICE
programmato: La riga indicizzata viene mantenuta – tutte le
altre righe vengono rimosse dal result-set. La transazione non viene
chiusa. Un blocco impostato con SELCT...FOR UPDATE viene
mantenuto per la riga indicizzata – viene annullato per tutte le altre
righe.
8
N. parametro per risultato
: parametro Q in cui il
server SQL inserisce il risultato:
0: nessun errore registrato
1: errore comparso (handle non corretto)
8
Banca dati: ID di accesso SQL
: parametro Q con
l’handle per l’identificazione del result-set (vedere
anche SQL SELECT).
8
Banca dati: Indice per risultato SQL
: riga che deve
rimanere nel result-set. Il numero di riga viene
indicato direttamente o viene programmato 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