Una transacción, 8 a c cesos a tablas con instr u cciones-sql – HEIDENHAIN TNC 640 (34059x-01) ISO programming Manual del usuario

Página 257

Advertising
background image

HEIDENHAIN TNC 640

257

8.8 A

c

cesos a tablas con instr

u

cciones-SQL

Una transacción

Una transacción consta, principalmente, de las siguientes acciones:

„

Asignar una dirección a la tabla (fichero), seleccionar líneas y
transferir en el Result-set.

„

Leer, modificar líneas del Result-set y/o añadir nuevas líneas.

„

Finalizar las transacciones. En modificaciones/adiciones se aceptan
las líneas desde el Result-set en la tabla (fichero).

Sin embargo, también se necesitan más acciones para que las
entradas de la tabla en el programa NC puedan ser procesadas y evitar
una modificación paralela de las mismas líneas de la tabla. De ello
resulta el siguiente desarrollo de una transacción:

1

Para cada columna que deba procesarse, se especifica un
parámetro Q. El parámetro Q se asigna a la columna – se crea un
enlace (SQL BIND...).

2

Asignar una dirección a la tabla (fichero), seleccionar líneas y
transferir en el Result-set. Adicionalmente se definen, qué
columnas deben ser aceptadas en el Result-set (SQL SELECT...).

Se pueden bloquear las líneas seleccionadas. Entonces otros
procesos pueden tener acceso a esas líneas en modo lectura, pero
no pueden modificar las entradas de la tabla. Por ello siempre
deben bloquearse las líneas seleccionadas al realizar
modificaciones (SQL SELECT ... FOR UPDATE).

3

Leer, modificar líneas del Result-set y/o añadir nuevas líneas:
– Aceptar una línea del Result-set en los parámetros Q del
programa NC (SQL FETCH...)
– Preparar las modificaciones en los parámetros Q y transferir en
una línea el Result-set (SQL UPDATE...)
– Preparar una nueva línea de tabla en los parámetros Q y
trasmitirla como nueva línea en el Result-set (SQL INSERT...)

4

Finalizar la transacción.
– Se han modificado/añadido entradas en la tabla: los datos se
aceptan desde el Result-set en la tabla (fichero). Ahora están
memorizadas en el fichero. Se desactivan eventuales bloqueos, se
libera el Result-set (SQL COMMIT...).
No se han modificado/añadido entradas en la tabla (solo accesos
en modo lectura): se desactivan eventuales bloqueos, se libera el
Result-set (SQL ROLLBACK... SIN ÍNDICE).

Se pueden ejecutar varias transacciones paralelamente.

Cerrar sin falta una transacción iniciada – incluso al utilizar
exclusivamente accesos en modo lectura. Solamente así
se garantiza que las modificaciones/adiciones no se
perderán, que los bloqueos se desactivarán y que el
Result-set se liberará.

Advertising