PDA

Ver la Versión Completa : ApplyUpdates no funciona en ClientDataSet


albertougo
22-06-2011, 14:06:45
Hola amigos. Paso a comentar mi problema con Delphi XE.
Tengo una tabla en con 13 campos en mySql, a la cual accedo a traves de un SQLQuery, por medio de un SELECT. Uso un ClientDataSet y un DataSetProvider para acceder a esos datos y hasta ahí los leo perfecto.
El problema surge si modifico esos datos y luego trato de hacer un ApplyUpdates(0) en el ClientDataSet.
Con los 13 campos en la consulta el Update no se realiza, o sea no actualiza los registros.
Si la consulta la hago con 9 o 10 campos, la actualización se hace normalmente.
La pregunta es: esa es una limitacion de dbExpress, de mySql, o hay algun parametro a tocar para quitarla ?
Si alguien tiene alguna idea o le paso algo similar, please Help.

Al González
22-06-2011, 17:38:20
[...] o hay algun parametro a tocar para quitarla ?
Normalmente este tipo de cosas tienen que ver con las propiedades:

TDataSetProvider.UpdateMode (por lo general uso upWhereKeyOnly)
TDataSetProvider.ResolveToDataSet (recomendable en False)
TField.ProviderFlags (depende de cada campo, pero normalmente el de llave primaria debe llevar pfInKey).

En la ayuda de Delphi y en este foro encontrarás mucha más información al respecto. Retroalimenta este hilo conforme des los siguientes pasos para solucionar el problema.

Saludos.

Al González. :)

albertougo
22-06-2011, 18:38:04
Muchas Gracias Al Gonzales. Con esas modificaciones funciona perfecto. Lo que único que el parámetro al TField.ProviderFlags debe ser en los campos del SQLQuery y no sobre el ClientDataSet.
Gracias por la rapidez para contestar y la ayuda.