Una transazione, 8 a c cessi a tabelle con istr uzioni sql – HEIDENHAIN TNC 640 (34059x-01) ISO programming Manuale d'uso

Pagina 257

Advertising
background image

HEIDENHAIN TNC 640

257

8.8 A

c

cessi a tabelle con istr

uzioni SQL

Una transazione

In linea di principio una transazione si compone delle azioni:

„

indirizzamento della tabella (file), selezione di righe e trasferimento
nel result-set,

„

lettura righe dal result-set, modifica e/o aggiunta di nuove righe,

„

chiusura della transazione: in caso di modifiche/completamenti le
righe del result-set vengono inserite nella tabella (file).

Sono tuttavia necessarie ulteriori azioni affinché le voci delle tabelle
possano essere elaborate nel programma NC e non sia possibile
modificare in parallelo le stesse righe delle tabelle. Ne risulta la
seguente procedura di transazione:

1

Per ogni colonna da elaborare viene specificato un parametro Q. Il
parametro Q viene assegnato alla colonna, viene "collegato" (SQL
BIND...

).

2

Indirizzamento della tabella (file), selezione di righe e trasferimento
nel result-set. Definizione inoltre delle colonne da trasferire nel
result-set (SQL SELECT...).

Le righe selezionate possono essere "bloccate". Altri processi
possono quindi accedere in lettura a tali righe, ma non possono
modificare le voci delle tabelle. Le righe selezionate devono essere
sempre bloccate se si apportano modifiche (SQL SELECT ... FOR
UPDATE

).

3

Lettura delle righe dal result-set, modifica e/o aggiunta di nuove
righe:
– acquisizione di una riga del result-set nei parametri Q del
programma NC (SQL FETCH...)
– predisposizione modifiche nei parametri Q e trasferimento in una
riga del result-set (SQL UPDATE...)
– predisposizione di una nuova riga di tabella nei parametri Q e
trasferimento come nuova riga nel result-set (SQL INSERT...)

4

Chiusura della transazione:
– i valori in tabella sono stati modificati/completati: i dati vengono
acquisiti nella tabella (file) dal result-set. Sono ora memorizzati nel
file. Eventuali blocchi vengono eliminati, il result-set viene abilitato
(SQL COMMIT...)
– i valori in tabella non sono stati modificati/completati (solo
accessi di vettura): eventuali blocchi vengono eliminati, il result-set
viene abilitato (SQL ROLLBACK... SENZA INDICE).

È possibile elaborare in parallelo diverse transazioni.

Chiudere sempre una transazione iniziata, anche se si
impiegano esclusivamente accessi di lettura. Soltanto in
questo modo si assicura di non perdere
modifiche/integrazioni, i blocchi vengono eliminati e il
result-set viene abilitato.

Advertising