PDA

Visualizza la versione completa : [DELPHI] Selezionare DataSet tramite variabile


123delphi321
05-05-2008, 23:37
ciao,

avrei questo problema:

ho un datamodule dentro il quale ci sono diversi IbDataset, ognuno dei quali collegato ad una specifica tabella.

IbDatasetCausali
IbDatasetLuogo
IbDatasetTipoVacanza
IbDataset...etc etc

adesso io dovrei aprire ed eseguire determinate operazioni sul dataset selezionato dipendentemente dal valore di una variabile...

es: variabile ='causali'
DM.IbdatasetCausali.Open;

es: variabile ='luogo'
DM.Ibdatasetluogo.Open;

es: variabile ='TipoVacanza'
DM.IbdatasetTipoVacanza.Open;

c'e' una maniera per fare questa cosa utilizzando una variabile 'macro'

es: variabile ='luogo'
Miodataset='ibdataset'+variabile
DM.Miodataset.Open;

spero di essere stato chiaro...
grazie per l'aiuto.

gfabio86
06-05-2008, 00:25
non so se puo esserti d'aiuto perche nn conosco il delphi...
cmq a mio avviso potresti utilizzare un vettore di Data set...e poi utilizzare gli indici per selezionare quello che ti serve...
nn so se questa cosa e' fattibile in delphi...spero di esserti stato d'aiuto...

123delphi321
06-05-2008, 07:10
Originariamente inviato da gfabio86
non so se puo esserti d'aiuto perche nn conosco il delphi...
cmq a mio avviso potresti utilizzare un vettore di Data set...e poi utilizzare gli indici per selezionare quello che ti serve...
nn so se questa cosa e' fattibile in delphi...spero di esserti stato d'aiuto...

dovrei usare degli if per ogni rigo dove sta scritto il nome del dataset che devo utilizzare...


io cerco una soluzione diversa, i miei N database corrispondono a N tabelle di uguale struttura, e voglio fare un solo programma che selezioni e gestisca in automatico la tabella selezionata tramite un parametro, avrei adottato questa soluzione ....



var
MioDataset:TIBdataset
.....
.....
if miavariabile='Luogo' then MioDataset:=Dm.IbDatasetLuogo;
if miavariabile='Causali' then MioDataset:=Dm.IbDatasetCausali;

MioDataset.open;


se avete suggerimenti...

grazie

alka
02-06-2008, 16:33
Ma perché non utilizzare come valore della variabile il nome del componente TDataSet stesso, da ottenere attraverso il metodo FindComponent del contenitore? :master:

Loading