Actualizar todos los registros de un ClientDataSet
Como dice el titulo como hago para actualizar todos los registros ?
la idea es que tengo una tabla en memoria con varios registros y una columna de ITEM que va del 1 al Nº total de registros imaginemos que tengo una tabla con 60 registros, enumerados y si borro el registro 20, todos los demas deben re-enumerarse y tendre 59 registros.... estaba pensando en
existe alguna otra manera? |
Hola
Como es un clientdataset podrias crear el campo para la numeracion como calculado y luego en el evento oncalcfields:
No lo he probado pero una vez hice lo mismo y mas o menos recuerdo que asi lo resolvi. Espero sea util Saludos |
no funciona, me sale 0 en todos los registros.
|
Hola.
Pero, ¿ Asignaste la propiedad TClientDataSet.RecNo al campo calculado en el evento OnCalcFields del TClientDataSet ? Saludos :) |
me explicas como se hace por favor?
|
Hola.
Si por supuesto, va un ejemplo: 1.- Sobre el TClientDataSet hace click con botón derecho del mouse y agrega los campos persistentes: 2.- Agrega un nuevo campo: 3.- Definelo: Y luego, estando seleccionado el TClientDataSet, desde el Object Inspector -> events -> doble click sobre el evento -> OnCalcFields y dentro del procedimiento este código:
Saludos :) |
ah si
hice eso, agregue un campo Item (Calculated) pero me sale cualquier cosa |
Hola.
En mis pruebas mantiene correctamente la numeracion de los registros al agregarlos o al borrarlos: Pero, hay que tomar en cuenta que no todos los DataSet reconocen posiciones y eso podría estar dandote algun problema. En la categoría de los que no lo hacen entran aquellos que soportan cliente/servidor. Como desconozco el gestor de base de datos y los componentes de conexión que estas usando, no podría decir mucho mas... Saludos :) |
Cita:
En el programa que tenia tambien funcionaba bien sobre el clientdataset. Tal vez tengas en la propiedad packetrecords un valor diferente al que tiene por defecto y eso este afectando (Creo). Fuera de eso no se que pueda estar pasando. Por desgracia no he podido encontrar el codigo de mi programa para compararlo. Saludos |
Uso MsSQL me conecto via FireDac
Cita:
|
aun no puedo solucionar este problema
he seguido los pasos indicados y nada alguna referencia adicional? |
Hola Oscar. Tal vez deberías mostrar lo que estás haciendo, por lo menos con el 10% de dedicación y detalle que tuvo ecfisa para orientarte.
La pereza para los que programan en Visual Basic, colega. ;-) |
entendi cual es el problema.
lo que me dio ecfisa si funciona ya lo probe, el tema es que posteriormente al post, recorro los registros del ClientDataSet, para hacer unos calculos (sumas, acumulados, etc), es ahi donde se hace bolas. lo solucione, pero ahora me doy con la sorpresa que cuando ejecuro la instruccion CdsDetalle.First el campo Item se pone en blanco (cero) en todos los registros... cosa de locos |
La franja horaria es GMT +2. Ahora son las 04:50:31. |
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