Ver Mensaje Individual
  #6  
Antiguo 10-02-2004
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Reputación: 24
guillotmarc Va por buen camino
Hola.

Como comenta Maro, este problema es debido a que el valor del campo ID lo proporciona el Servidor, y el ClientDataset no lo conoce.

Es más cuando vas introduciendo los detalles, es posible que aún no hayas grabado la cabecera, por lo que no hay forma de saber cual será su valor de clave primaria (ya que solo lo asigna automaticamente el servidor al grabar).

Imagino que las secuencias de PostGree deben ser parecidas a los generadores de Firebird, que es la base de datos que utlizo habitualmente.

En Firebird, no habilito ningún trigger para que el servidor asigne la clave primaria en función del generador (secuencia). En lugar de ello, al crear un registro en el clientdataset (en el evento AfterInsert) hago una consulta para averiguar el nuevo valor del generador, y se lo asigno a la clave primaria. De esta forma no tengo que esperar a grabar el registro para tener el valor dela clave, y cuando creo los detalles ya conozco el valor de la clave de relación.

Seguramente podrás hacer algo parecido en PostGree.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita