He estado leyendo un poco respecto al bloqueo de tablas, y parece no ser muy recomendable para hacer transacciones, ya que independientemente del resultado de las inserciones o actualizaciones, solo bloquea y luego desbloquea.
Yo estaba pensando en algo más, algo así como guardar todas las instrucciones SQL de la operación en un archivo de texto temporal, y luego al final hacer una conexión por socket a la BD y entregarle el archivo .sql para correr todas las instrucciones en un solo golpe.
El problema es que lo anterior tiene el mismo problema, si una de las instrucciones resulta en un error, simplemente se lo brinca...
Pensemos en mi caso particular:
Para completar una reservación, el script debe hacer cuatro cosas...
1.- Guardar los datos de la reservación
2.- Asignar un chofer para hacer el viaje
3.- Enviar instrucciones al usuario y al chofer
3.- Registrar el importe de la operación en las cuentas por cobrar
Te imaginas que pasaría si el paso 4 no fuera completado? se daría el servicio y no quedaría rastro de la deuda!!
Alguna idea?