Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Delphi: reload form

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    17

    Delphi: reload form

    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.

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,288
    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!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    17
    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.

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,288
    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!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    17
    Ho provato con una Commit e adesso funziona tutto,
    ti ringrazio molto per l'aiuto e scusa l'ottusaggine .

    Ciao.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.