Ver Mensaje Individual
  #1  
Antiguo 06-12-2012
Ignacio Gentile Ignacio Gentile is offline
Miembro
NULL
 
Registrado: may 2011
Posts: 15
Reputación: 0
Ignacio Gentile Va por buen camino
Problema con ApplyUpdate en relación maestro/detalle

Tengo una relación maestro detalle entre la tabla clientes y la tabla lista de precio. Para ello utilizo los siguientes componentes:
  • dtsCliente (TAdoDataSet) --> Tiene asignada la consulta que me trae los registros de la tabla clientes
  • dtsListaPrecioCliente (TAdoDataSet) --> Tiene creado un parámetro (id_cliente). Trae los registros de la tabla lista_precio_clientes que cumplen con la igualdad de id_cliente
  • dtpCliente (TDataSetProvider) --> Asociado al componente dtsCliente
  • cdsCliente (TClientDataSet) --> Asociado al componente anterior.
  • cdsListaPrecioCliente (TClientDataSet) --> Asociado al componente cdsCliente mediante dataSetField=cdsClientedstListaPrecioCliente
  • dsCliente (TDataSource) --> Asociado a dtsCliente.

El primer problema que se me presenta es que al hacer un insert sobre cdsCliente no me autoincrementa el valor de la clave (id_cliente). Para este caso probé poner la propiedad AutoGenerateValue del campo correspondiente en TRUE pero no funciona. También he probado en asignar yo el valor desde una grilla y en dicho caso anda bien (al hacer un insert en el detalle, asigna el valor ingresado a id_cliente en la tabla detalle).
Todo funciona bien hasta que hago el applyUpdate. En este caso sale un error de que no se permite el valor NULL para id_cliente (en caso de que no le asigne manualmente dicho código) o el error de que el valor de id_cliente para la tabla lista_precio_cliente no existe en la tabla Clientes (en caso de asignar manualmente el id desde la grilla).

Otra cosa que he probado es poner pfInKey = True en la propiedad ProviderFlags de los campos que son claves.

No sé por donde probar ya que soy nuevo en esto de trabajar en capas y estoy haciendo mi primera aplicación de prueba!

Gracias por la ayuda!
Responder Con Cita