PDA

Visualizza la versione completa : database [Delphi]


gablix
07-10-2003, 16:43
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 ??

alka
07-10-2003, 20:35
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.



var
DataOra: TDateTime;
begin
...
DataOra := ADOQuery1.FieldByName('CAMPODATAORA').AsDateTime;
...
end;

gablix
08-10-2003, 08:34
Grazie mille, provo subito ! :)

Loading