Newsgroup: it.comp.lang.delphi
Titolo: definizione campi  data set

salve a tutti,
sto cominciando ora ad usare il ClientDataSet e i data base in generale;
non ho capito che differenza ci sia nel creare i campi
mediante la proprieta' FieldDefs dell'object inspector
e invece utilizzare il Field Editor del menu contestuale;
anche perche' ho definito i campi con quest'ultimo
e non li ritrovo nella proprieta' FieldDefs!

cicogna ha scritto:

La proprietà /FieldDefs/ andrebbe riservata alla definizione dei campi 
che costituiscono la struttura vera e propria della tabella in memoria 
(se stai utilizzando il componente *TClientDataSet* in questa modalità, 
cioè per il supporto di dati in memoria, esportabili in formato MyBase, 
binario o XML); l'uso del "Field Editor" ti consente di configurare e 
mantenere persistenti, definendo appunto "campi persistenti", 
determinate proprietà collaterali relative ai campi, come l'etichetta 
associata, il formato di visualizzazione e così via.
Ciao,
   Marco.
-- 
MARCO BREVEGLIERI
  (
http://www.marco.breveglieri.name
)

 
...quindi la prima cosa da fare e' impostare la proprietà FieldDefs, giusto?

...quindi la prima cosa da fare e' impostare la proprietà FieldDefs, >giusto?
No , la prima cosa da fare è chiedersi e spiegare cosa vuoi fare.
Vuoi manipolare i dati in memoria , vuoi interfacciarti con qualche
database , che so Firebird :) ecc..
ciao Mario
--- posted by geoForum on 
http://www.delphiedintorni.it

 giusto?
Dipende... i dati provengono da un database?


 
i dati provengono da un file di testo, si tratta sinteticamente di un 
elenco di materiali per edilizia con un codice una descrizione e un prezzo.
Voglio creare una tabella per poter visualizzare i dati ed effettuare 
semplici aggregazioni per categoria e ricerche di dati specifici.
La tabella e' ad uso esclusivamente locale e mono utente;
non c'e' collegamento a database di nessun tipo.
Penso che il ClientDataSet sia esattamente quello che mi serve.
Tornando al mio quesito (temo il primo di una lunga serie
non avendo alcuna esperienza di database)
da quello che ho capito la proprietà FieldDefs definisce la struttura 
della tabella e il field editor definisce i campi come li voglio
visualizzare, permettendo anche l'aggiunta ad esempio di campi
calcolati. Vi chiedo conferma di questo.

 elenco di materiali per edilizia con un codice una descrizione e un prezzo.
Ora è più chiaro. In tal caso, trattandosi di un semplice file di testo, 
suppongo non in formato XML, dovresti caricare manualmente i dati 
all'interno del componente *TClientDataSet* per renderli "manipolabili" 
con i comuni controlli data aware.
Definisci quindi, tramite la proprietà /FieldDefs/, i campi di cui deve 
essere costituita la tabella con cui avrai a che fare; indicativamente, 
dovrai aggiungere 3 campi, i primi due avranno /DataType/ di tipo 
"ftString" (codice e descrizione), il terzo suppongo "ftFMTBcd" (prezzo).
Quando hai definito i tre principali campi che costituiscono la 
struttura della tabella in memoria, puoi passare alla visualizzazione 
del "Field Editor" (con un doppio clic sul componente) per definire le 
proprietà "persistenti" inerenti la descrizione, la formattazione e 
altre caratteristiche dei campi che verranno anch'esse memorizzate nel 
file DFM, a cui aggiungerai poi eventuali campi calcolati, il cui valore 
dovrà essere definito tramite l'apposito evento /OnCalcFields/.
A runtime, puoi usare il metodo /CreateDataSet/ per inizializzare il 
componente a ricevere dati, caricandoli indirettamente dal file di testo 
(procedura che ormai è già stata affrontata più volte all'interno del 
newsgroup) tramite classiche chiamate ai metodi /Insert/ e /Post/ per 
ciascun record da immagazzinare.
Infine, aggancia i controlli data aware per l'editing dei dati in fase 
di esecuzione tramite il componente *TDataSource*.
Servire a temperatura ambiente. :-D
Ciao,
   Marco.


 
grazie mille, sei stato chiarissimo!
ciao
Luca