Ver Mensaje Individual
  #2  
Antiguo 26-06-2006
Avatar de elmago
elmago elmago is offline
Miembro
 
Registrado: ene 2006
Ubicación: El fin del mundo.
Posts: 43
Reputación: 0
elmago Va por buen camino
Maestro/detalle

Esto ocurre porque no usas Cache Updates en tus dataset,
cuando creas tu transacción el maestro reside en memoria y el detalle tambien reside en memoria, pero un registro por vez, cuando en el detalle se crea el segundo registro, el programa intenta grabar en disco el primer registro creado, cuando el registro maestro aun no ha sido guardado en la base de datos, ahí se genera el mensaje de error de la llave extranjera.
Generalmente cuando tenes una actualización con llaves extranjeras, es conveniente que utilices la propiedad Cache Updates de los dataset y cuando hagas el Apply primero hagas el maestro y luego el detalle. Pero ojo solo debes aplicarlo una vez si lo haces dos veces el Firebird te aporreará con el error de Clave duplicada en la tabla.
Otra opción sería usar el Cahe Updates solo para el detalle con lo cual hace mas sencillas algunas cosas pero complica otras.
Así que te recomiendo que uses la primera tecnica. Si tenes otra consulta, aqui estoy.
Responder Con Cita