2009-09-03 12 views
5

Voglio aggiungere un record in una TClientDataSet sulla base di un altro record (in questo stesso TClientDataSet). Il problema è che non posso accedere ad un altro record nel TClientDataSet perché il cursore è puntato sulla riga che sto aggiungendo. E non riesco a trovare un altro modo per accedere agli altri record nello stesso TClientDataset.Delphi: C'è un modo per accedere ai record in un TClientDataset oltre spostando il cursore

Naturalmente posso usare un TClientDataSet in più, copiare alcune cose e risolvere in questo modo, ma non mi piace questa soluzione.

Quindi non v'è un modo per accedere alle righe/record in un TClientDataset oltre spostando il cursore?

risposta

15

L'unico modo per farlo sarebbe quello di sezionare completamente il contenuto di proprietà ClientDataSet.Data.

Ciò significa che è necessario scrivere la maggior parte delle funzionalità di ClientDataSet da soli.

È molto più facile clonare il cursore in una nuova ClientDataSet, quindi utilizzare tale cursore per scorrere i record. Quindi puoi usare il tuo vecchio ClientDataSet per fare gli allegati.

Questo articolo spiega circa cursori clonazione: Cloning ClientDatSet Cursors

--jeroen

0

Si può avere uno sguardo al metodo di TClientDataSet.CloneCursor. Per ulteriori informazioni date un'occhiata a: http://edn.embarcadero.com/article/29416

+0

Hai visto (prima) risposta di Jeroen, che ha reso la stessa suggestione, a condizione che lo stesso link, ma ha avuto anche informazioni più esplicativo? – Argalatyr

+0

Non preoccuparti; è meglio avere più risposte che nessuna. –

Problemi correlati