Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-07-2004
Esau Esau is offline
Miembro
 
Registrado: may 2003
Ubicación: Canto Rey
Posts: 140
Poder: 22
Esau Va por buen camino
Question 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
Responder Con Cita
  #2  
Antiguo 13-07-2004
Avatar de ruina
ruina ruina is offline
Miembro
 
Registrado: jun 2004
Posts: 196
Poder: 20
ruina Va por buen camino
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?
Responder Con Cita
  #3  
Antiguo 13-07-2004
Esau Esau is offline
Miembro
 
Registrado: may 2003
Ubicación: Canto Rey
Posts: 140
Poder: 22
Esau Va por buen camino
uSO Como Base de datos el SQL Server 7.0 de Microsoft y el BDE para accesar a la BD
Responder Con Cita
  #4  
Antiguo 15-07-2004
Esau Esau is offline
Miembro
 
Registrado: may 2003
Ubicación: Canto Rey
Posts: 140
Poder: 22
Esau Va por buen camino
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
Responder Con Cita
  #5  
Antiguo 15-07-2004
Esau Esau is offline
Miembro
 
Registrado: may 2003
Ubicación: Canto Rey
Posts: 140
Poder: 22
Esau Va por buen camino
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...
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 11:19:51.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi