Una transazione, 9 a ccessi a tabelle con istr uzioni sql – HEIDENHAIN TNC 320 (340 551-01) Manuale d'uso
Pagina 350

350
10 Programmazione: Parametri Q
1
0.9 A
ccessi a tabelle con istr
uzioni SQL
Una transazione
Come principio una transazione è costituita dalle azioni:
–
Indirizzamento della tabella (file), selezione delle righe e
trasferimento nel result-set.
–
Lettura delle righe dal result-set, modifica e/o inserimento di nuove
righe.
–
Chiusura della transazione. In caso di modifiche/completamenti le
righe del result-set vengono inserite nella tabella (file).
Tuttavia sono necessarie altre azioni affinché le registrazioni di tabella
possano essere elaborate nel programma NC e si possa evitare di
modificare parallelamente righe di tabella uguali. Da questo consegue
il seguente svolgimento di una transazione:
1
Per ciascuna colonna che deve essere modificata, viene
specificato un parametro Q. Il parametro Q viene assegnato alla
colonna – viene „legato“ (SQL BIND...).
2
Indirizzamento della tabella (file), selezione delle righe e
trasferimento nel result-set. Inoltre viene definito quali colonne
devono essere inserite nel result-set (SQL SELECT...).
Le righe selezionate possono essere „bloccate“. In tale caso altri
processi possono accedere a tali righe in lettura, ma non
modificare le registrazioni di tabella. Le righe selezionate
dovrebbero essere sempre bloccate se vengono apportate
modifiche (SQL SELECT ... FOR UPDATE).
3
Lettura di righe dal result-set, modifica e/o aggiunta di nuove righe:
– Inserire una riga del result-set nei parametri Q del programma NC
(SQL FETCH...)
– Preparare modifiche nei parametri Q e trasferirli in una riga del
result-set (SQL UPDATE...)
– Preparare una nuova riga di tabella nei parametri Q e trasferirla
nel result-set come nuova riga (SQL INSERT...)
4
Chiusura della transazione.
– Le registrazioni di tabella sono state modificate/completate: I dati
del result-set vengono inseriti nella tabella (file). Ora sono
memorizzati nel file. Eventuali blocchi vengono annullati, il result-
set viene abilitato (SQL COMMIT...).
– Le registrazioni di tabella non sono state modificate/completate
(solo accessi di lettura): Eventuali blocchi vengono annullati, il
result-set viene abilitato (SQL ROLLBACK... SENZA INDICE).
Si possono elaborare in parallelo più transazioni.
Chiudere sempre una transazione iniziata – anche se si
impiegano esclusivamente accessi di lettura. Solo in
questo modo si garantisce che non vadano perdute le
modifiche/completamenti, i blocchi siano annullati e il
result-set venga abilitato.