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
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 y/o añadir nuevas líneas del Result-set: –
Incorporar una línea del Result-set al parámetro Q de su
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 las transacciones. – 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 posibles
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á.
HEIDENHAIN | TNC 620 | Manual del usuario Programación en lenguaje conversacional | 9/2016
Accesos a tablas con instrucciones SQL
desarrollo de una
transacción:
9
9.9
373