PDA

Visualizza la versione completa : [Delphi] inserire data in database


zaion
29-01-2004, 13:37
Sto scrivendo un programma in delphi 7 e non riesco a
inserire la data nel campo 'date' di un database
paradox tramite l'oggetto 'TQuery' (ovvero in SQL).

zaion
29-01-2004, 14:28
io ho provato così ma mi da errore



Query2.SQL.Text:='insert into visitatori (data) values('+DataToStr(data)+')';
Query2.ExecSQL;


aiuto :dhò:

kentaromiura
29-01-2004, 14:29
Originariamente inviato da zaion
io ho provato così ma mi da errore



Query2.SQL.Text:='insert into visitatori (data) values('+DataToStr(data)+')';
Query2.ExecSQL;

ti da', ovviamente errore peche' inserisci una stringa al
posto di un tipo data..
:D

zaion
29-01-2004, 14:32
Originariamente inviato da kentaromiura
ti da', ovviamente errore peche' inserisci una stringa al
posto di un tipo data..
:D


...si può specificare una data anche
con una adeguata stringa SQL, solo che non sò bene come
con questo dannato Delphi :eek:

alka
29-01-2004, 14:36
Non usare quel tipo di approccio, ma prova in questo modo che è più sicuro.

Definisci il tuo statement SQL in questo modo:


Query.SQL.Text := 'INSERT INTO VISITATORI (DATA) VALUES (:PARDATA)';

In questo modo, hai automaticamente dotato la tua query di un parametro, PARDATA (il nome è puramente indicativo e puoi scegliere quello che vuoi), che puoi definire così:


Query.ParamByName('PARDATA').AsDateTime := Now;

Dopo aver associato la data al parametro, richiama il metodo ExecSQL per eseguire la query come di consueto.


Query.ExecSQL;

Ciao! :ciauz:

kentaromiura
29-01-2004, 14:39
credo che esista anche qualcosa che si chiama
to_date( FORMATO, DATA ); ma devo provare..
comunque la soluzione di alka e' buona..
grazie, serviva anche a me..
@zaion:
la mia era solo una precisazione di perche' non funzionava..

zaion
29-01-2004, 14:39
Grande!!!

ad occhi dovrebbe andare.
appena arrivo a casa provo.

alka
29-01-2004, 14:52
E' molto probabile che esistano delle funzioni SQL "in linea" per effettuare le conversioni di tipi, ma con l'approccio "a parametri" mi trovo molto più comodo perchè posso sfruttare le proprietà AsDateTime, AsInteger, AsString che accettano direttamente valori nel formato nativo in cui vengono memorizzati nell'applicazione e lascio alle classi di Delphi il compito di tradurli e interpretarli come si deve.

Ciao! :ciauz:

Loading