Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di danz67
    Registrato dal
    May 2005
    Messaggi
    213

    Delphi 7 - Refresh db

    Ciao a tutti,
    dopo aver relazionato le tabelle del mio db fatto in access, ho creato un form (nuova assistenza)con una dblookup e l'ho configurata in modo tale che possa prelevare un determinato campo dalla tabella clienti e visualizzarlo nella tabella assistenze, fin qui tutto bene, funziona tutto regolarmente, pero' ho notato che nel momento in cui vado ad inserire un nuovo record nella tabella clienti e poi vado nella form nuova assistenza e cerco di attingere dalla dblookup il nuovo record appena inserito nella tabella clienti, non lo visualizzo. A questo punto devo necessariamente chiudere il programma e riavviarlo per poter visualizzare tutti i record nuovi inseriti.
    C'è qualche soluzione a questo "banale" problema?
    Grazie. Ciao.

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,288
    E' sufficiente chiudere e riaprire il DataSet (la tabella, la query, ecc. a seconda dei casi) chiamando i metodi Close e Open per aggiornare i dati contenuti all'interno del buffer.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  3. #3
    Utente di HTML.it L'avatar di danz67
    Registrato dal
    May 2005
    Messaggi
    213
    Originariamente inviato da alka
    E' sufficiente chiudere e riaprire il DataSet (la tabella, la query, ecc. a seconda dei casi) chiamando i metodi Close e Open per aggiornare i dati contenuti all'interno del buffer.

    Ciao!
    Supponendo che ho ADTclienti, ADTassistenze, dovrei scrivere cosi?
    ADTclienti.close;
    ADTclienti.open;

    ed eventualmente dove?
    Grazie. Ciao.

  4. #4
    Utente di HTML.it L'avatar di danz67
    Registrato dal
    May 2005
    Messaggi
    213
    Ho capito tutto, grazie e a presto.

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    22
    ciao a tutti, io ho un problema simile...
    Ho una dblookupcombobox che attinge da un database con tutti gli articoli immessi in un ipotetico magazzino.
    dopo aver evidenziato la mia scelta su tale componente, scelgo l'articolo che voglio visualizzare premendo un pulsante.
    Il problema è che fatto ciò, se clicco nuovamente sul dblookupcombobox, non vedo più tutte le voci di prima, ma solo quella scelta in precedenza...
    ESEMPIO:
    dblookupcombobox collegata a tabella articoli
    articoli in tabella e visualizzati in dblookupcombobox: PALLONE, MAGLIA, SCARPE.
    scelgo da dblookupcombobox PALLONE
    clicco su visualizza
    riclicco su dblookupcombobox: visualizzo solo PALLONE

    come mai?? help please.....

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,288
    Originariamente inviato da Crizzu
    ciao a tutti, io ho un problema simile...
    Dovresti verificare quali operazioni compi sul DataSet (TADOTable, TIBTable, TQuery, ecc.) a cui il controllo TDBLookupComboBox è collegato tramite l'intermediario componente TDataSource. :master:
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    22
    Ecco il sorgente relativo al pulsante VISUALIZZA prima descritto:
    procedure TForm3.SpeedButton1Click(Sender: TObject);
    var app:string[50];app2:string[50];

    begin
    if (DBLookupComboBox1.Text='')then
    showmessage('Selezionare l''articolo')
    else
    begin
    DBGRID1.Visible:=true;
    app:=DBLookupComboBox1.KeyValue;
    DataModule1.Query1.Close;
    DataModule1.Query1.SQL.Clear;
    DataModule1.Query1.SQL.Add('Select NomeArticolo,COD,Qta,Data');
    DataModule1.Query1.SQL.Add('from normal');
    DataModule1.Query1.SQL.Add('where normal.NomeArticolo="'+app+'"');
    DataModule1.Query1.Open;
    alert2:=true;
    end ;
    dbedit1.Visible:=true;
    end ;

    come vedi, io opero su query1..

  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,288
    Originariamente inviato da Crizzu
    Ecco il sorgente relativo al pulsante VISUALIZZA prima descritto
    Se la query di selezione di un solo ed unico articolo viene impostata sul componente dal quale il controllo TDBLookupComboBox preleva i dati, è normale che, eseguendo quella query che restituisce un solo risultato, otterrai la visualizzazione di quell'unico record anche sulla ComboBox associata.

    Devi usare due componenti query diversi, oppure modificare il codice per agire sul record della tabella degli articoli, prelevata nella sua interezza o limitatamente al set di record da elencare, impostando come record corrente quello su cui lavorare.

    P.S.: vedo che usi componenti TQuery... io abbandonerei da subito la libreria BDE, in quanto è deprecata da tempo (più di 5 anni).

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    22
    caro alka, il problema di abbandonare il bde è che io il delphi l'ho imparato ad usare leggermente solo l'anno scorso a scuola...e i componenti tquery sono gli unici che maneggio decentemente...cmq se mi puoi rispiegare un metodo per evitare il problema sopra descritto te ne sarei grato...

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,311
    ciao,

    il campo dblookup visualizza i dati da un datasource, nel tuo caso questo datasourse e' quello collegato a DataModule1.Query1. nel momento che tu esegui la query 'Select NomeArticolo,COD,Qta,Data from normal where normal.NomeArticolo="'+app+'"' il tuo datasource conterrà solo i record che soddisfano la condizione nomearticolo=app.

    per risolvere il problema e' necessario o collegare il dblookup al datasource della tabella o anche, se preferisci, effettuare la tua stessa query omettendo la condizione: 'Select NomeArticolo,COD,Qta,Data from normal'.


    anche io prima utilizzavo le BDE...., ti assicuro che altri componenti hanno un funzionamento molto simile (per non dire uguale). cmq, se segui i consigli di alka non ti troverai male.

    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.