Newsgroup: it.comp.lang.delphi
Titolo: TClientDataset

Qualcuno ha mai utilizzato il componente in oggetto e mi sà dire se dire
perché dovrei utilizzarlo al posto un un normalissimo TQuery?

perché dovrei utilizzarlo al posto un un normalissimo TQuery?
Cerca la serie di articoli di Cary Jensen nella Community Borland.

 Cerca la serie di articoli di Cary Jensen nella Community Borland.
Provo subito Grazie

Senti Sam se trovi qualcos'altro sul componente lo posti al NewsGroup.
Questo componente non è quasi supportato dall'Help On Line.
Grazie
Ciao.
--------------------------------
Inviato via 
http://usenet.libero.it


Open Delphi Manual (
http://groups.yahoo.com/group/delphi_open_manual/
)

La sua utilità è indubbia con i dataset più comuni, [...]
C'è comunque da aggiungere un pò di "postille" ;-)
In particolare:
1. Il CDS non può tenere in memoria una quantità di dati molto grande
(e come dice lo stesso Cary Jensen "is not for every application").  
Il problema è che nessuno può dire "quanti" dati possa contenere,
mediamente, un CDS, prima che il peso dell'elaborazione si faccia
sentire.  Alcuni mi dicono che loro non si sono mai azzardati oltre la
decina di migliaia di record.  Credo, quindi, che prima di imbarcarsi
nell'utilizzo di un CDS bisogna stare molto attenti alle "dimensioni"
dei propri dati.  E` vero che, generalmente, non è mai buona regola
scaricare a un DB troppi dati in locale, però può capitare di doverlo
fare;
2. Un CDS crea sempre gli indici in memoria, non può fare altrimenti,
perché deve poter vivere indipendentemente dal DBMS che gli fornisce i
dati.  Quindi viene meno qualsiasi ottimizzazione sulla creazione
degli indici si possa operare sulla base dati.  Oltretutto, supponendo
che il DBMS, domani, migliori la gestione degli indici, il CDS non
mantiene automaticamente il passo.  
3. Il CDS è (sic) closed-source.  Una mossa stupida da parte di
Borland, a mio avviso, visto che l'esplorazione del sorgente della VCL
serve moltissimo per capire i funzionamenti interni e migliorare l'uso
dei componenti.  Una migliore comprensione del CDS non può che
favorirne l'utilizzo.  Sarebbe utile, ad esempio, capire in che modo
il CDS crea gli indici in memoria.
Io, poi, non ci crederete, ho sperimentato un pò di problemi con il
CDS su Interbase, che mi hanno costretto a tornare agli IBX.
Probabilmente ho fatto qualche errore, ma al momento l'unica soluzione
adottabile, pur di far funzionare le cose, è stata quella di cambiare
componenti.

 componenti.
Che tipo di problemi? Qualcuno ne ho avuto anche io con il dbExpress, ma
tutti gli effetti collaterali e le stranezze indivuate, dopo un attenta
lettura degli articoli di Cary Jensen e del libro di Cantù, hanno avuto
la loro logica spiegazione.
Ad esempio, accadeva che avviando l'applicazione, alcune tabelle
contenessero già dei dati; con un attenta lettura, ho appreso che la
proprietà Data, la proprietà che contiene i dati in forma binaria,
salvava i propri dati nel DFM poichè la proprietà Active era stata
impostata a True e lasciata così in fase di progettazione. Pertanto,
quando l'applicazione veniva avviata, si vedevano i dati "persistenti"
contenuti nel ClientDataSet che scomparivano poi con il primo refresh,
ottenuto chiudendo e riaprendo il CDS. Come dicevo, effetto stranissimo
che farebbe pensare ad un bug, in realtà era un normale funzionamento.
Come dice il motto: "se lo conosci, non ti uccide" (ma lo eviti?) :-)


Che tipo di problemi? 
Avevo dei CDS in master/detail, io scorrevo il master, calcolavo la
somma di determinati valori nel detail, entravo in edit sul master e
dopo la post sembrava ignorare del tutto le modifiche.  Questo
nonostante si attivasse l'ApplyUpdates sull'AfterPost.   Almeno, credo
che sia questo quello che succedesse, non ricordo esattamente, al
momento non ebbi tempo di testare sufficientemente bene e, per
sbrigarmi, tornai ad IBX (per fortuna, grazie al fatto che entrambi
derivano da TDataSet, il cambiamento fu rapidissimo).

 Tutto ciň che ho appreso io l'ho letto dal libro "Mastering Delphi 7" di
Io uso D5E e ho la versione 5 del libro di Cantů, dove la trattazione dei
database specie per quanto riguarda l'argomento client server, a mio parere,
č decisamente pietosa. Oggi spero, rogne permettendo, di finire di leggere
gli articoli

Nel mio caso, invece, il problema è che la base dati supererebbe
[...]
Questi post molto interessanti andrebbero aggiunti all'open manual.
Non buttiamo mai via queste dritte tecniche, frutto dell'esperienza!
-- 
Morde. 
(morde at programmer dot net)

 finire di leggere gli articoli
Direi che nelle ultime edizioni, la trattazione dei database č
migliorata, almeno dal mio punto di vista. Poi, fortunatamente, si č
abbandonato lo studio dei vecchi componenti BDE e si č passati ad
analizzare la nuova piattaforma dbExpress.


 Non buttiamo mai via queste dritte tecniche, frutto dell'esperienza!
Dovrebbero farmi un lavaggio del cervello per rimuovere le informazioni.
;-)


In seguito ho riguardato nell'HelpOnLine e, in D6-Pro ho trovato ben 46
paragrafi sul componenete in oggetto.
Si deve cercare in 'Applicazioni con database' o qualcosa del genere. Io lo
trovo nel folder che contiene i link ai files di Help.
Ciao
