FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Maestro Detalle
Hola Amigos , tengo un pequeño problema... tengo una aplicacion en delphi 7 uso el BDE para conectarme a la base de datos. el problema es el siguiente tengo una tabla de cabecera de pedidos y detalle de pedidos, todo funciona de maravilla, pero cuando dos o mas usuarios insertan pedidos, alli vienes los errores, por que en el codigo dice mas o menos esto:
TablaCabeceraNumero.value := MaxNumero.param[0]. asInteger; donde MaxNumero es un StoreProcedure que me devuelve el ultimo numero del campo clave, libre , pero alli viene el error porque cuando dos usuarios insertan un registro a los dos les devuelve el mismo numero y cuando graban cada uno sus respectivos documentos , viene el error de key Violation, la verdad no se como superar el problema he intentado poner el codigo en el evento before post, pero al no tener numero el campo clave , pierdo todos los detalles. me gustaria alguna sugerencia por parte de Uds. creo que ya se han topado con este problema antes gracias de antemano |
#2
|
||||
|
||||
dependiento de la DB que uses puedes tener mecanismos (como generadores en interbase, que estan fuera de cualquier transacción) que te ayuden a superar el problema ¿cual usas?
|
#3
|
|||
|
|||
uSO Como Base de datos el SQL Server 7.0 de Microsoft y el BDE para accesar a la BD
|
#4
|
|||
|
|||
ya encontre la solucion
Amigo te cuento que ya encontre la solucion al problema
no era muy dificil, sole he puesto un procedimiento almacenado que me devuelve el ultimo numero libre para la cabecera, de esa forma si hay otro usuario que esta grabando el procedimiento devolvera el siguiente numero libre lo compara con el que tengo en la tabla cabecera si es diferente lo cambia, pero primero cambia a todos los detalle y luego a la cabecera, confirmo la tranasaccion y listo, lo he probado con tres usuarios al mismo tiempo y hasta ahora no me ha fallado, incluso sincronice a dos de mis usuarios para que grabaran al mismo tiempo y no hubo problema hasta ahora todo bien , gracias por todo ... Saludos desde Lima |
#5
|
|||
|
|||
en que consisten los generadores
Hay me olvide, en que consisten los generadores, y si el SQL Server 7.0 de microsoft los tiene , si saben donde se puede conseguir informacion se los agradecere...
|
|
|
|