Annullamento delle modifiche di una transazione con SQL ROLLBACK

Applicazione

SQL ROLLBACK annulla tutte le modifiche e integrazioni di una transazione. La transazione viene definita tramite l'HANDLE da indicare.

Premesse

  • Codice chiave 555343
  • Tabella presente
  • Nome tabella idoneo
  • I nomi di tabelle e relative colonne devono iniziare con una lettera e non possono includere caratteri di calcolo, ad es. +. In base ai comandi SQL, tali caratteri possono comportare problemi in fase di importazione ed esportazione di dati.

Descrizione funzionale

Le frecce nere e la relativa sintassi mostrano i processi interni di SQL ROLLBACK. Le frecce grigie e la relativa sintassi non appartengono direttamente al comando SQL ROLLBACK.

La funzione del comando SQL SQL ROLLBACK dipende dall'INDEX:

  • Senza INDEX:
    • Il controllo annulla tutte le modifiche e integrazioni della transazione
    • Il controllo numerico annulla un blocco impostato con SELECT...FOR UPDATE
    • Il controllo numerico chiude la transazione (l'HANDLE perde la propria validità)
  • Con INDEX:
    • Esclusivamente la riga indicizzata rimane invariata nel result-set (il controllo numerico elimina tutte le altre righe)
    • Il controllo annulla tutte le eventuali modifiche e integrazioni nelle righe non indicate
    • Il controllo numerico blocca esclusivamente la riga indicizzata con SELECT...FOR UPDATE (il controllo numerico annulla tutti gli altri blocchi)
    • La riga indicata (indicizzata) diventa in seguito la nuova riga 0 del result-set
    • Il controllo numerico non chiude la transazione (l'HANDLE mantiene la propria validità)
    • Necessaria successiva chiusura manuale della transazione con l'ausilio di SQL ROLLBACK o SQL COMMIT

Immissione

11 SQL ROLLBACK Q1 HANDLE Q5 INDEX 5

; Cancellazione di tutte le righe della transazione Q5, eccetto riga 5

La funzione NC contiene i seguenti elementi di sintassi:

Elemento di sintassi

Significato

SQL ROLLBACK

Apertura sintassi per l'istruzione SQL ROLLBACK

Q/QL/QR o Q REF

Variabile in cui il controllo numerico salva il risultato

HANDLE

Parametro Q con l'identificazione della transazione

INDEX

Numero di riga all'interno del result-set come numero o variabile che rimane invariato

Senza indicazione il controllo numerico annulla tutte le modifiche e integrazioni della transazione

Elemento di sintassi opzionale

Esempio

11 SQL BIND Q881 "Tab_Example.Position_Nr"

12 SQL BIND Q882 "Tab_Example.Measure_X"

13 SQL BIND Q883 "Tab_Example.Measure_Y"

14 SQL BIND Q884 "Tab_Example.Measure_Z"

* - ...

21 SQL Q5 "SELECT Position_Nr,Measure_X,Measure_Y, Measure_Z FROM Tab_Example"

* - ...

31 SQL FETCH Q1 HANDLE Q5 INDEX+Q2

* - ...

41 SQL ROLLBACK Q1 HANDLE Q5