Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    36

    [delphi] Query memorizzare i record restituiti

    Ciao a tutti,

    sono sempre alle prese con le Query in delhpi e mi chiedevo come posso fare per memorizzare i record restituiti da una query. Mi spiego meglio.

    select titolo
    from nome_tabella;

    questa query restituisce un numero N di record. Io vorrei memorizzarli, ma non so come fare ad accedere ai singoli record restituiti dalla query.
    Immagino di dover impostare un ciclo ma non so bene su che proprietà devo lavorare.

    ciao e grazie per la pazienza

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326

    Re: [delphi] Query memorizzare i record restituiti

    Ciao,

    non ho capito dove li vuoi memorizare???

    per scorrerti il dataresoult puoi fare cosi:

    codice:
      .....
      IBQuery.Open;
      IBQuery.First;
      while not IBQuery.Eof do
        begin
          ......
          ......
         IBQuery.Next;
        end;
    ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    36
    Già hai ragione non ho detto dove li volevo memorizzare. In realtà mi servono i dati della query per aggiornare le voci (nodi) di un ttreeview, inoltre questi dati li devo visualizzare all'interno di una tlistview. In realtà non si tratta di una memorizzazione ma di una visualizzazione di dati per l'utente.

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    non ho mai utilizzato quei componenti, ma suppongo sia una cosa abbastanza semplice da fare, una volta letto il record dalla query che hai fatto.


    leggi qui, penso ti possa essere utile....

    ciao

    http://www.delphiedintorni.it/geoxml...isplaymode=all

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    36
    Si ora che mi hai spiegato come scorrere i record restituiti dalla query è tutto a posto. Grazie

    Ecco il codice della mia procedura che mi consente di aggiungere sottonodi al nodoradice

    procedure AggiornaNodi;
    var NomeNodo:string;
    node:ttreenode;
    begin
    frmMain.QueryNodi.Close;
    frmMain.QueryNodi.SQL.Clear;
    frmMain.QueryNodi.SQL.Text:='select P_nome as NomePlaylist from PLAYLIST';
    frmMain.QueryNodi.Open;
    frmMain.QueryNodi.First;
    while not frmMain.QueryNodi.eof do
    begin
    NomeNodo:=frmMain.QueryNodi.FieldByName('NomePlayl ist').asstring;
    node:=frmMain.trvLaterale.Items[0];
    frmMain.trvLaterale.Items.AddChild(node,NomeNodo);
    frmMain.QueryNodi.Next;
    end;

    end;

    Grazie ancora

  6. #6
    wih è un costrutto del Pascal che non si ritrova in altri linguaggi (alemeno per quello che ho riscontrato io) ma che è per alcuni versi pratico e facilita spessa la lettura dei sorgenti
    codice:
    procedure AggiornaNodi;
    var NomeNodo:string;
    node:ttreenode;
    
    begin
    
      with frmMain.QueryNodi do
      begin
    
        Close;
        SQL.Clear;
    
        SQL.Text:='select P_nome as NomePlaylist from PLAYLIST';
    
        Open;
    
        First;
        while not eof do
        begin
    
          NomeNodo := FieldByName('NomePlaylist').asstring;
          node := frmMain.trvLaterale.Items[0];
          frmMain.trvLaterale.Items.AddChild(node,NomeNodo);
    
          Next;
    
        end;
    
      end;
    
    end;

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da mondobimbi
    wih è un costrutto del Pascal che non si ritrova in altri linguaggi (alemeno per quello che ho riscontrato io) ma che è per alcuni versi pratico e facilita spessa la lettura dei sorgenti
    Io lo trovo fuorviante nella maggior parte dei casi, e ambiguo in molte situazioni (ad esempio, scrivendo Width all'interno dell'evento in un Form non è chiaro se ci si riferisce all'oggetto o al Form stesso... e il debugger considera solo quest'ultimo, cioè ignora il costrutto).

    Un'alternativa al with è semplice: basta memorizzare il riferimento all'oggetto a cui si accede in una variabile.

    codice:
    var
      Qry: TQuery;
    begin
      Qry := frmMain.QueryNodi;
      Qry.Close;
      Qry.SQL.Clear;
      Qry.SQL.Text:='select P_nome as NomePlaylist from PLAYLIST';
      Qry.Open;
      Qry.First;
      while not Qry.Eof do
        begin
          NomeNodo:= Qry.FieldByName('NomePlaylist').asstring;
          node := frmMain.trvLaterale.Items[0];
          frmMain.trvLaterale.Items.AddChild(node, NomeNodo);
          Qry.Next;
        end;
    end;
    Si evita così l'ambiguità del with mantenendo leggibilità ma soprattutto chiarezza dell'elemento a cui si fa riferimento (che è riportato in ogni istruzione).

    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.