Visualizzazione dei risultati da 1 a 3 su 3

Discussione: database [Delphi]

  1. #1
    Utente di HTML.it L'avatar di gablix
    Registrato dal
    Nov 2001
    Messaggi
    11

    database [Delphi]

    Ciao a tutti.

    Ho un problema con Delphi e i database.

    Premessa : accedo ad un database access tramite ADO, com i compententi ADOConnection e ADOQuery; tramite un componente DataSource riesco a visualizzare correttamente il valore cercato con la query in un campo DBtext.

    Il problema sorge quando devo recuperare il valore presente nel campo puntato dalla query e assegnarlo ad una variabile (e non ad un camponente DBText). Non riesco a trovare il modo per passare alla variabile tale valore (ho provato parecchi metodi sia di ADOQuery che di DataSource).

    Non so se è un problema di componenti utilizzati (ADOQuery, DataSource) o semplicemente non ho trovato il metodo appropriato.

    Il codice che ho provato è il seguente :
    ....
    var sql:String;
    var dato:String;
    ...

    ADOQuery1.SQL.Clear;
    sql:='SELECT data_acq from tabclienti;';
    ADOQuery1.SQL.Add(sql);
    ADOQuery1.ExecSQL;
    ADOQuery1.Active:=true;

    dato:= ?????????? (ADOQuery1.BOH!)

    Il campo a cui accedo è un campo di tipo Data/Ora, ho provato impostando la variabile "dato" sia di tipo String che TDateTime, ma il problema rimane....

    Cosa devo fare ??
    Andrea

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296
    Quando accedi ad una query tramite un componente TADOQuery, analogamente a quanto avviene con altri componenti affini, il componente carica al suo interno il "result set", cioè i dati ottenuti dalla base dati alla quale è collegato.

    E' possibile navigare nel DataSet usando i metodi First, Next, Prior, Last per spostarsi su record specifici.

    La funzione che devi utilizzare è FieldByName, la quale ti restituisce il riferimento ad un campo del componente, che è la rappresentazione Delphi del campo nel database, attraverso il quale puoi ottenere il valore del campo stesso per il record selezionato, magari convertendolo automaticamente.

    codice:
    var
      DataOra: TDateTime;
    begin
      ...
      DataOra := ADOQuery1.FieldByName('CAMPODATAORA').AsDateTime;
      ...
    end;
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  3. #3
    Utente di HTML.it L'avatar di gablix
    Registrato dal
    Nov 2001
    Messaggi
    11
    Grazie mille, provo subito !
    Andrea

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.