PDA

Ver la Versión Completa : Insertar en dos tablas distintas al mismo tiempo


Patricio
02-07-2005, 14:51:04
Hola a todos quisiera hacer una consulta:

Yo trabajo con Delphi 5 y Interbase

Yo tengo una base de datos por ejemplo llamada Base, y dos tablas llamadas Tabla1 y Tabla2. El codigo que utilizo para insertar datos es el siguiente

Base.StartTransaccion
Tabla1.Insert
AsignarDatos(Tabla1)
Tabla1.Post
Base.Commit

Ahora mi pregunta es que pasa si al mismo tiempo un usuario en una maquina quiere agregar en la tabla1 y otro en la tabla2. Hay alguna forma mejor de hacerlo?

Saludos

AGAG4
02-07-2005, 17:39:48
Te recomiendo que hagas la Inserción y la Aplicación de la Transacción al Finalizar X Captura, ahora, si quieres evitar que 2 ó más usuarios quieran Modificar 1 mismo registro uno de ellos les disparará la famosa excepción de bloqueo de registro ó bien se esperará a que se desocupe dicho registro, esto ocurrre dependiendo del Nivel de Aislamiento que tengas en la Transacción Wait ó No Wait, ahora como te entendí que quieres Insertar 2 Tablas al Mismo Tiempo podrías dejarlo como lo tienes ó bien Crea un Procedimiento Almacenado que Haga las 2 inserciones pasandole los Parámetros Pertinentes a los campos de las 2 Tablas....

Espero te haya ayudado ó metido más dudas....

Saludos....

Patricio
04-07-2005, 15:05:36
Bueno gracias por tu respuesta, como es ese tema del wait, tendras algun ejemplo, que pasa si hago algo asi

while Base.InTransaccion
do
a := a + 1

es decir cualquier sentencia para que lo haga esperar

Muchas Gracias y Saludos