Written by xinyiman Febbraio 22, 2012, 11:24:00 am23396 ViewsRating: 0 (0 Rates)Print
A volte si presenta la necessità di lavorare con dei dataset virtuali ovvero dataset che non fanno riferimento ad una tabella reale. I casi sono i più disparati, ad esempio per usare i file come se fossero dei database oppure per fare degli esempi che simulino l'uso di un database!
Bene vediamo come funzionano, per prima cosa creiamo un nuovo progetto applicazione e nella form che ci si presenta inseriamo dalla Tab "Data Access" un oggetto DataSource e un oggettoTBufDataSet (che rinomineremo VDset ovvero Virtual DataSet). Poi ci spostiamo nella Tab "Data Controls" e inseriamo una TDBGrid sulla form, inoltre aggiungiamo anche due nuovi pulsanti che useremo per applicare un filtro ai dati e uno per rimuovere il filtro ai dati.
Bene ora ci troviamo con i seguenti oggetti inseriti
{dichiaro la struttura del dataset virtuale} VDSet.FieldDefs.Add('Nome',ftString,50); VDSet.FieldDefs.Add('Cognome',ftString,50); VDSet.CreateDataset;{creo il dataset virtuale con la struttura sopra dichiarata} VDSet.Open; {apro la connessione al dataset virtuale} VDSet.Append; {dico che voglio accodare dei dati al dataset virtuale} VDSet.Fields[0].Value:='Carlo'; {inserisco il campo Nome} VDSet.Fields[1].Value:='Verdi'; {inserisco il campo Cognome} VDSet.Post; {applico l'accodamento} VDSet.Append;{dico che voglio accodare dei dati al dataset virtuale} VDSet.Fields[0].Value:='Mario'; {inserisco il campo Nome} VDSet.Fields[1].Value:='Rossi'; {inserisco il campo Cognome} VDSet.Post; {applico l'accodamento}
Come potete vedere tale codice è suddiviso in una prima parte dove definiamo la struttura del dataset virtuale e successivamente da una parte in cui inseriamo i dati nel dataset. Nel nosto esempio abbiamo inserito due campi stringhe di 50 caratteri che hanno i seguenti nomi "Nome" e "Cognome" e poi li abbiamo riempiti con Carlo Verdi e Mario Rossi. Nel nostro esempio dove c'è scritto ftString va inserita una variabile di tipo TFieldType che può essere valorizzata con uno dei seguenti valori
Altri valori si possono recuperare semplicemente scrivendo TFieldType. (con il punto dopo TFieldType) allorchè comparirà la lista completa dei possibili valori. Ora andiamo ad assegnare (dall'object inspector) il DataSet dell'oggetto DataSource1 e lo settiamo con l'unico valore disponibile: VDSet. Ora andiamo ad assegnare (dall'object inspector) il Datasource dell'oggetto DBGrid1 e lo settiamo con l'unico valore disponibile: Datasource1.
Ora andiamo ad inserire il seguente codice nell'evento OnClick dell'oggetto Cmd_Applica_Filtro
Questo codice applica un filtro che consente di vedere solo i record che hanno il campo Nome valorizzato come Mario. Ora andiamo ad inserire il seguente codice nell'evento OnClick dell'oggetto Cmd_Elimina_Filtro
Questo codice elimina ogni filtro applicato. Ora compilate e vedrete i vostri dati nella DBGrid e provate anche a cliccare sui pulsanti che applicano ed eliminano il filtro.
xinyiman registered at Italian community of Lazarus and Free Pascal on Ottobre 14, 2011, 10:56:28 pm and has posted 3271 posts in the boards since then. Last visit was Oggi alle 08:25:59 am.
Questo blog non rappresenta una testata giornalistica poiché viene
aggiornato senza alcuna periodicità. Non può pertanto considerarsi un
prodotto editoriale ai sensi della legge n. 62/2001.
Questo sito utilizza cookie, anche di terze parti, per offriti servizi in linea con le tue preferenze. Chiudendo questo banner, scorrendo questa pagina, cliccando su un link o proseguendo la navigazione in altra maniera, acconsenti all’uso dei cookie.