![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Que te indique que
?
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
#2
|
|||
|
|||
|
Enviar a la BD solo los registros que se actualizaron
hola
Alguna propiedad que me indique cuales registros se modificaron en el ClientDataSeT Saludos... |
|
#3
|
||||
|
||||
|
La propiedad donde se lleva el registro es Delta
Hasta luego. ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
#4
|
|||
|
|||
|
Enviar a la BD solo los registros que se actualizaron
Saludos..
Puedo acceder a la propiedad Delta de alguna forma ? o antes de hacer Post o ApplyUpdates coloco la propiedad ?. Gracias... |
|
#5
|
||||
|
||||
|
Hola,
no te lo puedo asegurar con exactitud, pero creo recordar que los ClientDataSet tienen dos propiedades de tipo OleVariant, una de ellas Delta y la otra Data. Data tiene los datos que contiene el DataSet pero es asignable por lo que si tu a un ClientDataSet le asignas Delta a su propiedad Data deberías poder ver solo los registros modificados. Sorry si hay alguna inexactitud ![]() Saludos. |
|
#6
|
||||
|
||||
|
Hola.
Puedes acceder al Delta en el evento BeforeApplyUpdates (lo obtendrás como parámetro del evento). Para saber si un registro de un clientdataset ha sido modificado, puedes consultar su propiedad UpdateStatus, que puede ser : No Modificado, Modificado, Insertado, Eliminado. Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
|
#7
|
||||
|
||||
|
Cita:
Hasta luego. ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
#8
|
|||
|
|||
|
Enviar al BD solo los registros que se actualizaron
Hola a todos.
Tengo una aplicación a medias por el siguiente motivo: Tengo una BD Firebird 1.5 y creo una pantalla con DBEdits cada uno enlazado a un campo de la tabla excepto el campo clave que le introduzco la ref. que yo quiero y al apretar Enter me busca el registro y ya lo tengo en cada campo del formulario. Ahora si modifico algún dato y luego apreto un botón que tengo un ApplyUpdates(0) me da un error de que no me conoce el nombre de la tabla a actualizar (he modificado el parámetro del ApplyUpdates a -1 y a un valor +n y me hace lo mismo). Todo lo demás buscar, modificar a través de sql, y la elimincación me funciona correctamente, pero esto no y me interesa poderlo hacer. El tipo de acceso lo hago con: 1 TSQLConnection 1 TSQLQuery 1 TDataSetProvider 1 TClientDataSet 1 TDataSource los dos primeros son de dbExpress. Lo malo es que tambíen lo he probado con componentes Interbase y me hace lo mismo, en cambio con ADOExpress me funciona bíen. Lo malo de ADO es el tiempo de respuesta de la BD que es mucho más lento que en los otros dos anteriores que es inmedito. No he probado con BDE ya que dicen que ya está obsoleto, no sé. Alguien me puede ayudar en este caso ?. y Vosotros con que componentes lo hariais, ya que es una aplicación Cliente/Servidor con mucho movimiento de información en red con varios ordenadores ?. Gracias. Jordy. |
|
#9
|
||||
|
||||
|
Hola.
Esto me ha ocurrido cuando la consulta de la que se reciben los datos, tiene una subconsulta. El Parser de la sentencia no es muy inteligente, y considera la primera tabla que encuentra, como la tabla a modificar. En todo caso la solución es sencilla. En el evento OnGetTableName del TDatasetProvider, indícale cual es la tabla a utilizar para modificar los registros. Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|