Newsgroup: it.comp.lang.delphi
Titolo: Refresh su una query ado (con join) che utilizza CacheUpdates

Salve
Ho una query ado (con più join) e applyudates:=true.
inserisco una riga con Insert ma non chiamo applyUpdates (per mie
ragioni)
Ho la necessità di mostrare a video la riga (che farà riferimento alla
join della query)
nella TDBgrid mi vengono mostrati (ovviamente) solo i dati che ho
messo nella insert;
Vi chiedo c'è la possibilità di fare un refresh dopo insert e post ma
prima di applyUdates senza perdere
l'inserimento??
Spero di essere stoto chiaro.
Grazie.


No, non per me...
ti ho seguito fino alla Insert, poi dopo non ho piu' capito:
1. cosa devi mostrare a video;
2. cosa ti viene mostrato (cioe' se non i dati che hai inserito, cosa 
vorresti? Le decodifiche? non si capisce);
3. il refresh prima di ApplyUpdates a cosa dovrebbe servire?
Ciao,
baba.

 - Mostra testo tra virgolette -
Supponiamo Che mostro in una TDBGrid (form1) una query con join tra
tabella A (IdCliente) e Tabella B(IdCliente, NomeCliente).
Supponiamo che faccio una Insert sulla tabella A, quindi mostro una
form2 che mi permette di inserire
i dati della insert (tabella A), Premendo Ok viene eseguito il Post
della tabella A e viene chiusa la Form2.
Ora a video rimane la form1, che contiene la TDGrid che mostra solo le
colonne della query che fanno riferimento
alla tabella A (mi mostra solo IdClienet ma non Cliente).
Non faccio ApplyUpdates perche voglio salvare il tutto solo quando
chiudo la Form1.
Se faccio refresh perdo il contenuto della Insert , quindi hai ragione
non serve.
Chiedo se esiste un altro metodo per mostrare nella TDBGrid anche i
Valori della tabella B inseriti ma non confermati.
Spero di aver chiarito.
Grazie

 della tabella A e viene chiusa la Form2.
se tu fai una Insert nella sola tabella A (il che mi sembra strano: che 
fa l'utente finale, inserisce solo l'IdCliente???) nessun dato viene 
inserito in tabella B quindi perche' ti aspetti che venga visualizzato?
L'istanza di TDataset su cui invochi i metodi Insert e Post e' la stessa 
che usi per la griglia?
Tieni conto del fatto che l'istanza di TDataset che stai utilizzando 
come sorgente dati per la griglia, e' non "live", in quanto frutto 
dell'esecuzione di una selezione con "join", e per questo non (sempre) 
direttamente aggiornabile.
Non puoi postare un paio di frammenti significativi di codice?
ciao,
baba.

> Non puoi postare un paio di frammenti significativi di codice?
Cosa Importantissima in realtà uso il comonente TMSQuery SDAC di
Corelab che mi permette
di creare una query e specificare che insert e update vengano fatte
solo sulla tabella A.
Il senso è che l'utente chiama la form 1, esegue una serie di
inserimenti mediante la form2 e alla fine
conferma con il bottone ok (ApplyUpdates) sulla form1 tutto il lavoro
oppure annulla (CancelUpdates) tutto il lavoro con il bottone cancel.
La tabella A contiene varie colonne tra cui IdCliente, La tabella B
contiene le colonne IdCliente,NomeCliente etc...
La query è una join tra la tabella A e la Tabella B (Mostra
NomeCliente a posto di IdCliente).La griglia sulla Form1 Visualizza la
query.
La Form2 (chiamata dalla form1) esegue Insert e post nella Tabella A
(l'utente non inserisce IdCliente ma NomeCliente che viene scelto con
un controllo tipo lookup nella Form2).
L'utente esegue una serie di insert con Form2
Quando la Form2 viene chiusa nella griglia vengono visualizzati tutti
gli inserimenti;
I campi della tabella A sì ma non il Nome Cliente (che fa parte della
query join).
Ovviamente se chiamo ApplyUpdates della tabella A e Refresh della
query la griglia mostra correttamente tutto.
Forse sbaglio l'approccio perchè non uso le transazioni