FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Problema con ClientDataset y provider
Hola a todos...
Estoy migrando un sistema de facturación de Delphi7 a Delphi 2010. Uso Firebird con las FibPlus El sistema funciona perfecto en Delphi 7 pero en 2010 el clientdadaset no funciona correctamente. Cuando se carga el pedido la cosa funciona bien. Digamos que cargo 5 items. Hasta aquí todo bien, ahora si modifico un item o cambio alguno al hacer el applyupdates se pierden registros o repite el primer item en todos los registros del pedido. Alguna idea? Saludos
__________________
No te vayas sin irte |
#2
|
||||
|
||||
Hola.
Se ve muy raro. Revisa la configuración de como se deben hacer las actualizaciones. Personalmente te recomiendo que el UpdateMode del Provider lo tengas en upWhereKeyOnly (o sinó en upWhereChanged). Y después, en los campos persistentes del FibDataset (no en los del ClientDataset), tienes que activar el pfInKey dentro de los ProviderFlags del campo persistente correspondiente a la clave primaria de la tabla. Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
#3
|
|||
|
|||
Hola... gracias por tu respuesta.
Hasta ahora tenía entendido que los campos persistentes se activaban el el ClientDataset y no en el FIBDataset. Esto es así..?, porque de serlo cambia toda la historia (y el programa). No obstante he probado lo que me aconsejas y no funcionó. Espero tu respuesta, gracias nuevamente!
__________________
No te vayas sin irte |
#4
|
||||
|
||||
Cita:
En los campos persistentes del ClientDataset es donde configuras como quieres que se comporte el campo en tu formulario (disparo de eventos, formato de presentación, DisplayLabel, etc. ...). En los campos persistentes del FIBDataset es donde configuras como se actualiza ese campo en la base de datos (que campos forman la clave primaria, que campos se deben actualizar y que campos no se deben actualizar, etc. ...). Asegúrate de haber seguido estos dos pasos : a) En el TDatasetProvider cambia la propiedad UpdateMode a upWhereKeyOnly b) En los campos persistentes del TFIBDataset cambia la propiedad ProviderFlags del campo correspondiente a la clave primaria, y activa el Flag pfInKey Esto es lo que le indica al ClientDataset como identificar correctamente los registros para poder hacer las modificaciones. Si aún así las actualizaciones hacen cosas extrañas, entonces habrá que buscar otros motivos, como que por ejemplo podrías tener algún trigger en la tabla que no funciona correctamente. Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Problema con clientdataset | lina maria | Conexión con bases de datos | 5 | 26-10-2008 18:26:30 |
Maestro Detalle con ClientDataSet sin Provider | fufo_m | Varios | 0 | 12-10-2007 18:09:02 |
Problema con ClientDataSet | Slash | Conexión con bases de datos | 1 | 10-09-2004 23:15:01 |
Problema con ClientDataSet | waezu | Providers | 2 | 30-03-2004 18:36:00 |
Problema de ClientDAtaset con xml | carlosmoralesm | Internet | 6 | 03-03-2004 21:46:16 |
|