Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Error de actualizacion con CDS (https://www.clubdelphi.com/foros/showthread.php?t=75704)

Ezecool 13-09-2011 17:06:52

Error de actualizacion con CDS
 
Buenas amigos, ojala me puedan ayudar con el siguiente problema:
Tengo un cliendataset conectado a una query mediante un proveedor, el query obtiene datos desde dos tablas mediante inner join y en el cds modifico algunos datos de la tabla principal de la consulta. Al momento de hacer el applyupdate obtengo un mensaje: ERROR: no existe la columna <apellido>; esa columna pertenece a la tabla esclava de la consulta que me provee los datos y no la modifico para nada, es solo para mostrar el apellido de un cliente del cual modifico otros datos. Este problema me impide salvar las modificaciones, habra alguna forma de solucionarlo. Trabajo con D2010 y mysql. Desde ya muchas gracias:)

ecfisa 13-09-2011 17:10:57

Hola.

¿ Podrías poner más detalles como por ejemplo el código SQL que utilizas en la consulta ?

Saludos.

Ezecool 13-09-2011 17:24:22

Gracias por responder

la query hace esta consulta
Código SQL [-]
SELECT
  liquidaciones_det.id_liquidacion,
  liquidaciones_det.id_agente,
  liquidaciones_det.sueldo_bruto,
  liquidaciones_det.id_categoria,
  liquidaciones_det.horas,
  liquidaciones_det.inasistencias,
  liquidaciones_det.nro_cuenta,
  empleados.apellido,
  empleados.nombre
FROM
  liquidaciones_det
  INNER JOIN public.empleados ON (liquidaciones_det.id_agente = public.empleados.id_agente)
WHERE
  id_liquidacion = :pId_liquidacion
ORDER BY
  apellido
luego en CDS modifico los campos horas, inasistencias, sueldo_bruto hago el post en cada caso y al aplicar los cambios me me da el error mencionado con el campo apellido. Muchas gracias

DarKraZY 13-09-2011 17:37:29

Seguramente habrás creado los TField en el ClientDataSet, ¿no? Pues tienes que modificar el field MiClientDataSetapellido y poner a False pfInUpdate y pfInWhere que están en ProviderFlags.
Esto es para DBX excluya esos fields de las actualizaciones que hagas con ApplyUpdates.

Espero que te sirva, saludos!

Ezecool 13-09-2011 18:03:52

Muchas gracias darcrazy, efectivamente hice lo que me sugeriste y funciono. Muchisimas gracias, saludos

DarKraZY 14-09-2011 09:00:54

De nada ;)


La franja horaria es GMT +2. Ahora son las 10:35:34.

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