Newsgroup: it.comp.lang.delphi
Titolo: Query di inserimento con date URGENTE

Scusatemi, ho questo problema.
Ho una query di inserimento con un parametro di tipo Date.
Esempio Qry1... insert into tabella (datamia) values :datamia (datamia
parametro di tipo date)
Quando faccio
qry1.parameters("DataMia").asdatetime='01/01/2000'
non mi da errori
quando faccio
qry1.execsql;
sulla mia macchina non da problemi su un altro mi da errore.
La query è attaccata a Sql server via Bde 5.1 . Uso Delhpi 5 con Sp
Grazie
Luca

Forse non risolvera' il tuo problema, ad ogni modo prova ad usare
.AsFloat e non AsDateTime come parametro.
Io in una situazione simile alla tua ottenevo come risultato messaggi di
errore di divisione per 0 con date nel 2000.
Prova non si sa mai.


 ha scritto nel messaggio
news:8jfooc$bio$1...@fe1.cs.interbusiness.it...


'YYYY/MM/DD'
Ehm, il formato americano semmai e' MM/DD/YYYY ;) 
Effettivamente, puo' darsi che la data non corrisponda al formato
giusto.
Esempio : se il programma viene compilato su una macchina che ha
formato Data/Ora italiano (dd/mm/yyyy) e' probabile che passare 
30/06/2000 
funzioni.
Produce invece un errore su una macchina che supporta il formato
americano (mm/dd/yyyy) in quanto il mese n. 30 non esiste.
Prova quindi ad utilizzare comunque AsDateTime (non AsFloat), ma a
costruire il TDateTime utilizzando StrToDateTime con ShortDateFormat
impostato sul tuo preciso formato.
--
Andrea Laforgia (
andrea_...@bigfoot.com
)
--------------------------------------------------------------
"Partire e' un po' morire e morire e' partire un po' troppo !"
--------------------------------------------------------------

Prova a fare un paio di verifiche:
1 - il sistema operativo sulla macchine che impostazioni di data hanno
2 - il server SQL in che lingua è impostato
3 - l'utente SQL con cui ilprogramma si connette in che lingua è impostato
Cerca di capire chi da errore: sql server, bde o altro. Puoi fare qualche
controllo con SQL monitor in modo da verificare esattamente quale comando
viene passato dal bed a SQL server?

sulla mia macchina non da problemi su un altro mi da errore.
Le librerie RX usano la seguente stringa per convertire una data in
stringa:
sdfMSSQL='"CONVERT(datetime, ''"mm"/"dd"/"yyyy"'', 103)"'
Questa mi sembra una procedura universale, provala...
Ciao
--
Piero Bonanno
bop...@libero.it
pie...@tiscalinet.it
bop...@tin.it
bpie...@hotmail.com
______________________________________________
"Madame, lei ha tra le gambe uno strumento
che puo' offrire piacere a migliaia di persone,
e tutto quello che sa fare e' grattarlo"
- Sir Thomas Beechan a una violoncellista

INTERBUSINESS
 >>
Ho una query di inserimento con un parametro di tipo Date.
Esempio Qry1... insert into tabella (datamia) values :datamia (datamia
parametro di tipo date)
Quando faccio
qry1.parameters("DataMia").asdatetime='01/01/2000'
non mi da errori
quando faccio
qry1.execsql;
sulla mia macchina non da problemi su un altro mi da errore.
<<
Il fatto che si comporti diversamente dipende prob. dalle impostazioni
internazionali delle due macchine e/o dalle impostazioni del BDE (se lo
usi).
Un modo non ambiguo per ottenere una data/ora da una serie di numeri (senza
scomodare le "Currency and date/time formatting variables") è usare
EncodeDate ed EncodeTime.
hth
Paolo Arosio

 
