PDA

Ver la Versión Completa : Problemas con el applyupdates


el-otro
28-06-2005, 13:01:08
Tengo un TBDGrid que muestra el contenido de una tabla de SQL Server.

El proceso para llegar a ella es el siguiente

- Un TADOConnection
- Un TADODataSet con la conexión anterior
- Un TDataSetProvider cuyo DataSet es el indicado anteriormente
- Un TClientDataSet, cuyo provider es el anterior
- Un TDataSource, cuyo DataSet es el ClientDataSet de la linea anterior
y - Un TBDGrid cuyo DataSource es el anterior.

Hasta aqui todo funciona correctamente

Además tengo por el formulario una serie de TBDEdit cuyo DataSource es el mismo que el del TBDGrid. Esto también se ve correctamente.

El caso es que cuando hago modificaciones en los TBDGrid se van guardando en el ClientDataSet de forma correcta.

A partir de aqui tengo un boton para la grabación en la tabla SQL Server de las modificaciones realizadas con un ClientDataSet.ApplyUpdates(0), sin embargo no me graba las modificaciones.

Tengo que señalar que la instrucción SQL que le paso a traves del TADODataSet tiene incluidos varios JOIN LEFT, lo que no se si influye.

Me podríais ayudar un poco a ver cual es la razón por la que no se aplican los cambios señalados.

Os agradezco vuestro interes, y os envio un saludo a todos.

Víctor

jachguate
28-06-2005, 18:13:43
Tengo que señalar que la instrucción SQL que le paso a traves del TADODataSet tiene incluidos varios JOIN LEFT, lo que no se si influye.

Claro que influye, puesto que el provider no puede encontrar el nombe de la tabla a actualizar. Podes hacer algo "manual" con los eventos de provider, ya sea insertando/actualizando vos mismo los registros (BeforeUpdateRecord), o bien indicando puntualmente que tabla actualizar (OnGetTableName).

Hasta luego.

pd. Por cierto... este tema me parece adecuado para el foro Providers, pero no para SQL, dado el tema que se trata, por lo que lo cambio para aqui.

el-otro
29-06-2005, 10:15:38
Muchas gracias por tu rápida respuesta. A la vista de los problemas he decidido utilizar dos clientdataset, y hacer el applyupdates solo sobre uno de ellos.

Quedo muy agradecido por tu atención.

Saludos.

Víctor.