Newsgroup: it.comp.lang.delphi
Titolo: Collegamento field di database diversi

Salve, ho creato un'applicazione in cui vi sono 2 database, uno è
l'archivio, che memorizzo su file, ed un altro mi serve solo per dei
calcoli, che poi trasporterò su un report.
Ho utilizzato dei "Clientdataset", ora la mia domanda è se è possibile
collegare un campo del secondo clientdataset ad uno del primo che sono dello
stesso tipo (Es. clientdataset1.prezzo collegato a clientdataset2.prezzo) in
modo tale che variando il prezzo sul primo, si ripercuota sul secondo, anche
dopo averlo già inserito... potreste spiegarmi come fare?
Ringrazio in anticipo  per i  suggerimenti che mi darete!!

 calcoli, che poi trasporterò su un report.
xche?
AS


Allora, io ho un database "Archivio" dove inserisco dei prodotti, e poi su
un altro database faccio l'ordine, e quest'ultimo mi serve per visualizzare
i calcoli del tipo quantità per prezzo, IVA ecc.
Questi due clientdataset hanno dei campi in comune (Prezzo,descrizione,Iva)
che metto in comunicazione facendo delle assegnazioni del tipo
clientdataset2.fieldbyname('prezzo').ascurrency :=
form2.clientdataset1.fieldbyname('prezzo').ascurrency. Io vorrei invece che
mi prelevasse direttamente tale valore dal clientdataset1 in base al field
selezionato, questo perchè se ho già inserito dei prodotti, e volessi
cambiare il prezzo dell'archivio, lui mi deve aggiornare il prezzo anche nel
secondo clientdataset, ma col metodo che uso io non lo fa in automatico...
Io avevo pensato di fare una procedura che facesse la scansione del database
ed aggiornasse i valori, ma è troppo macchinoso e sicuramente ci sarà
un'alternativa più immediata che purtroppo non conosco, per questo chiedo
consiglio.

 i calcoli del tipo quantità per prezzo, IVA ecc.
Quando parli di "database" parli di tabelle all'interno dello stesso 
database o di database distinti?
Nel primo caso, correggi il termine e usa "tabella", nel secondo caso 
cambia approccio di programmazione perché è quello sbagliato.
Se si tratta del primo caso, ovvero le informazioni che vuoi modificare 
sono su tabelle diverse all'interno delo stesso database, se usi il CDS 
collegato a un DSP, allora nel DSP concentri la logica di esecuzione 
delle query e sarà lì che imposti lo stesso valore per un campo e per 
l'altro nelle diverse tabelle.  Ovviamente, lato client, dovrai 
rileggere i rispettivi record.

 client, dovrai rileggere i rispettivi record.
Io ho un'applicazione strutturata così:
Form1 Clientdataset1, Datasource, DBgrid;
Form2 Clientdataset2, Datasource, DBgrid;
Sono tabelle o 2 database distinti? (scusami ma sto imparando da poco ad
usare i database)
Gli unici collegamenti che faccio sono per assegnazione dei field comuni tra
primo e secondo clientdataset.
Quindi mi dici che dovrei utilizzare un unico datasource collegando i vari
clientdataset giusto?

 usare i database)
Quando si parla di "database", si parla di una struttura in grado di 
contenere i dati sotto forma di tabelle.  In genere, si parla di RDBMS, 
per indicare quei sistemi di gestione dei dati basati su tabelle (la "R" 
  di RDBMS sta appunto per "relazionale", da "relazione"="tabella").
Durante lo sviluppo di un'applicazione si stabilisce, normalmente, 
l'accesso a un database e si utilizzano le tabelle in esso contenute.
Citando, però, i componenti a caso, come fai tu, non aiuti a capire 
quale sia il tuo problema.  Com'è la struttura delle tabelle del DB e in 
che modo vi stai accedendo tramite i CDS?