2009-09-03 15 views
5

Quiero agregar un registro en un TClientDataSet basado en otro registro (en este mismo TClientDataSet). El problema es que no puedo acceder a otro registro en el TClientDataSet porque el cursor apunta a la fila que estoy agregando. Y no puedo encontrar otra forma de acceder a los otros registros en el mismo TClientDataset.Delphi: ¿Hay alguna manera de acceder a registros en un TClientDataset además de mover el cursor

Por supuesto que puedo usar un TClientDataSet adicional, copiar algunas cosas y resolverlo de esa manera, pero no me gusta esa solución.

Entonces, ¿hay alguna manera de acceder a las filas/registros en un TClientDataset además de mover el cursor?

Respuesta

15

La única forma de hacerlo sería analizar por completo el contenido de la propiedad ClientDataSet.Data.

Lo que significa que tendrá que escribir la mayor parte de la funcionalidad ClientDataSet usted mismo.

Es mucho más fácil clonar el cursor en un nuevo ClientDataSet, luego use ese cursor para examinar sus registros. Luego puede usar su antiguo ClientDataSet para hacer las adiciones.

En este artículo se explica sobre los cursores de clonación: Cloning ClientDatSet Cursors

--jeroen

0

Usted puede tener una mirada en el método TClientDataSet.CloneCursor. Para obtener más información, consulte: http://edn.embarcadero.com/article/29416

+0

¿Vio la respuesta (anterior) de Jeroen, que hizo la misma sugerencia, proporcionó el mismo enlace, pero también tuvo más información explicativa? – Argalatyr

+0

No te preocupes; es mejor tener respuestas múltiples que ninguna. –

Cuestiones relacionadas