PDA

Visualizza la versione completa : Delphi: reload form


progra
27-12-2004, 15:24
Ciao,

come faccio a ricaricare una form che fa uso di oggetti ADO per poter ottenere i risultati delle modifiche apportate a tali oggetti?
Ho già provato a chiudere e poi ad aprire le varie tabelle ma niente. Col Refresh della tabella mi dà un errore.

C'è un'altra strada?

Grazie.

alka
27-12-2004, 15:42
Se le modifiche apportate ai dati sono andate a buon fine, chiudendo e riaprendo il DataSet (ADOTable, ADOQuery e così via) che li "espone" si otterranno i dati aggiornati. Per eseguire tale operazione, si deve chiamare il metodo Close per chiudere il DataSet e Open per riaprirlo.

Se i dati ottenuti in questo modo sono privi delle modifiche apportate che ci si aspetta di trovare, è possibile che tali modifiche non siano state salvate o che la transazione di cui fanno parte non sia stata confermata attraverso un'operazione di Commit, sebbene attribuirei più facilmente l'origine del problema ad una...svista. :)

Ciao! :ciauz:

progra
27-12-2004, 17:28
Se faccio una Close ed una Open del DataSet non mi fa l'aggiornamento dei record ed un Commit per aggiornare lo stato di un singolo utente non mi sembra molto indicato.
Se faccio invece un Refresh della tabella mi dice che non ha informazioni sufficienti sulla chiave per poter eseguire l'aggiornamento.
Come mai?
Hai per caso altri suggerimenti?

Comunque Grazie per l'aiuto.

alka
27-12-2004, 18:46
Originariamente inviato da progra
Se faccio una Close ed una Open del DataSet non mi fa l'aggiornamento dei record
Di quale DataSet stiamo parlando? ADOTable, ADOQuery o altro?


Originariamente inviato da progra
ed un Commit per aggiornare lo stato di un singolo utente non mi sembra molto indicato.
Non ho capito questa affermazione.
Semplicemente, se si sta accedendo ad un database che supporta le transazioni, è necessario eseguire la Commit per poter vedere le modifiche apportate, a meno che non siano state variate le impostazioni di default per quanto riguarda la visibilità stessa dei dati delle transazioni.
Lo "stato di un singolo utente" non ha alcun senso: si tratta solo di confermare le modifiche apportate da un utente.


Originariamente inviato da progra
Se faccio invece un Refresh della tabella mi dice che non ha informazioni sufficienti sulla chiave per poter eseguire l'aggiornamento. Come mai? Hai per caso altri suggerimenti?

Per individuare l'origine dell'errore restituito dalla chiamata a Refresh, si dovrebbe anche indagare sulle impostazioni dei componenti adottati per collegarsi al database (valori delle proprietà e altro ancora), magari assieme ad un po' di codice, o almeno le parti più significative, tanto per valutare il caso in cui ci si trova e le operazioni che si stanno svolgendo.

Brancolando nel buio è difficile azzardare ipotesi......

Ciao! :ciauz:

progra
28-12-2004, 09:09
Ho provato con una Commit e adesso funziona tutto,
ti ringrazio molto per l'aiuto e scusa l'ottusaggine :dhò: .

Ciao. :ciauz:

Loading