Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    [DELPHI] TDBGrid: ottenere numero riga/ID_Record

    Salve,

    da una TDGrid con una lista di Records vorrei ottenere al click di una cella di una X riga
    il riferimento numerico della riga/Record per aprire una nuova Form di editing del record stesso.

    In pratica ogni riga dovrebbe salvare un ID univoco del record per poi poterlo richiamare dal DB MySQL.

    una sorta di indexFieldName ?


    grazie
    IMPOSSIBLE IS NOTHING - LOOK BEFORE YOU LEAP !!!

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    per visualizzare i dati in una dbgrid hai bisogno di un datasource, tale datasource e' colegato alla tua sorgente dati... quindi basta che nel record della tua sorgente dati ci sia anche il field id

  3. #3
    non mi sono spiegato bene, scusami.

    ho già un DBGrid popolato da Records, mi serve solo una procedura per cliccare sulla riga ed ottnere come riferimento un ID del Record per poi processarlo in una finestra secondaria.

    Tutto qui. grazie comunque
    IMPOSSIBLE IS NOTHING - LOOK BEFORE YOU LEAP !!!

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    mi fai vedere la query con cui popoli la dbgrid?

  5. #5
    utilizzo ODBC driver per connettermi al server esterno MySQL per popolare la Grid.
    Ho TTable, un DataSource e TDBGrid. niente codice vero e proprio.

    La Grid ottiene i nomi campo dalla TTABLE.


    IMPOSSIBLE IS NOTHING - LOOK BEFORE YOU LEAP !!!

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    allora,... da come capisco tu nella dbgrid visualizzi una tabella, e tale tabella ha un field che si chiama id.

    adesso devi lavorare sull'evento ondbclick della dbgrid.
    nel momento che posizioni il mouse su una riga della dbgrid hai automaticamente il campo id a disposizione.....

    non so come e' la sintassi esatta per catturare quel campo (io utilizzo componenti diversi dai tuoi), ma suppongo qualcosa del genere ''trubrica.fieldbyname.....''

  7. #7
    Ho risolto facendo una accurata ricerca su siti esteri.
    In pratica ottenere un valore Field ROW è semplicissimo:

    codice:
    showMessage(MyDBGrid.DataSource.DataSet.Fields[0].asString);
    dove valore numerico di Fields[] ritorna il valore stringa/numero del campo corrispondente.
    Ottentuo questo, è possibile ad esempio, estrarre l'ID del Record e magari processarlo in una finestra secondaria.


    Grazie lo stesso.
    IMPOSSIBLE IS NOTHING - LOOK BEFORE YOU LEAP !!!

  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Per ottenere il valore di un campo, è sufficiente leggerlo dal DataSet (tabella, query, ecc.) a cui il TDBGrid è collegato attraverso il componente TDataSource: il record selezionato sul componente è sempre il medesimo evidenziato nella griglia, poiché ogni interazione sui controlli data aware producono generalmente un'azione sul DataSet sottostante.

    Nel caso in esame, comunque, se si tratta di implementare un meccanismo del tipo "testata/dettaglio" (master/detail), ci sono altri metodi più automatici ed efficaci per farlo, che non richiedono nemmeno di scrivere codice (fai una ricerca per ottenere qualche informazione in più).

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

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

  9. #9
    per contribuire alla "conoscenza" potevi indicare maggiori dettagli, sarebbe stato gratificante apprendere metodi diversi.

    Ti ringrazio lo stesso, ne farò cultura personale. Appena posso farò le ricerche che mi hai suggerito.
    IMPOSSIBLE IS NOTHING - LOOK BEFORE YOU LEAP !!!

  10. #10
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da gabcaly
    per contribuire alla "conoscenza" potevi indicare maggiori dettagli, sarebbe stato gratificante apprendere metodi diversi.
    Avrei potuto, se avessi avuto il tempo. Un po' di comprensione...
    Inoltre, non è conveniente che io riscriva quanto è già stato scritto estensivamente altrove.

    Fai la ricerca che ti ho suggerito, poi - se non trovi nulla - chiedi.

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

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

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 © 2025 vBulletin Solutions, Inc. All rights reserved.