Descartar los cambios en una transacción con SQL ROLLBACK

Aplicación

SQL ROLLBACK descarga todos las modificaciones y ampliaciones de una transacción. La transacción se define mediante el HANDLE que se va a indicar.

Condiciones

  • Clave 555343
  • Tabla disponible
  • Nombres de tabla aptos
  • Los nombres de las tablas y las columnas de las tablas deben comenzar con una letra y no pueden contener símbolos matemáticos, por ejemplo: +. Debido a las órdenes SQL, estos símbolos pueden causar problemas al leer o seleccionar datos.

Descripción de la función

Las flechas negras y la sintaxis asociada muestran procesos internos de SQL ROLLBACK. Las flechas grises y la sintaxis asociada no forman parte directamente de la orden SQL ROLLBACK.

La función de la orden SQL SQL ROLLBACK depende del INDEX:

  • Sin INDEX:
    • El control numérico cancela todas las modificaciones y ampliaciones de la transacción
    • El control numérico restablece un bloqueo fijado con SELECT...FOR UPDATE.
    • El control numérico concluye la transacción (el HANDLE pierde su validez)
  • Con INDEX:
    • Únicamente la fila indexada se mantiene en el Result-set (el control numérico retira las filas restantes)
    • El control numérico cancela todas las posibles modificaciones y ampliaciones en las filas no indicadas
    • El control numérico bloquea exclusivamente las filas indexadas con SELECT...FOR UPDATE (el control numérico restablece todos los demás bloqueos)
    • La fila indicada (indexadas) será en lo sucesivo la nueva fila 0 del Result-set
    • El control numérico no concluye la transacción (el HANDLE mantiene su validez)
    • Es necesario finalizar la transacción manualmente mediante SQL ROLLBACK o SQL COMMIT

Introducción

11 SQL ROLLBACK Q1 HANDLE Q5 INDEX 5

; Borrar todas las filas de la transacción Q5 excepto la fila 5

La función NC contiene los siguientes elementos sintácticos:

Elemento sintáctico

Significado

SQL ROLLBACK

Sintaxis de apertura para el comando SQL ROLLBACK

Q/QL/QR o Q REF

Variable en la que el control numérico guarda el resultado

HANDLE

Parámetro Q con la identificación de la transacción

ÍNDICE

Número de fila dentro de Result set como número o variable que se conserva

Si no se indica nada, el control numérico descarta todos los cambios y ampliaciones de la transacción

Elemento sintáctico opcional

Ejemplo

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