Newsgroup: it.comp.appl.access
Titolo: Query Sql su Database Access sul web

Ho sul Server web un database Access e mi sono accorto che a seconda di
come scrivo una query sql per accedere al database con le asp ottengo
risultati diversi per cui vi chiedo quel'è il modo corretto per eseguire
la query sql in presenza di campi di tipo data/ora??
La prima versione è senza i famosi #
"SELECT Contratti.ID, Contratti.COD, Contratti.CLIENTE, gruppi.gruppo,
gruppi.quantità, gruppi.tipo_contratto, gruppi.px,
gruppi.potenza,gruppi.destinazione,gruppi.note, Contratti.cont_dal,
Contratti.cont_al, Contratti.disdetta,Contratti.INDIRIZZO,Contratti.PROV
FROM Contratti INNER JOIN gruppi ON Contratti.ID = gruppi.idcliente
WHERE Contratti.cont_dal<=Date()AND Contratti.cont_al>=Date() AND
(Contratti.disdetta Is Null OR Contratti.disdetta ='') AND
gruppi.gruppo='tipogruppo'
ORDER BY gruppi.potenza"
La seconda
"SELECT Contratti.ID, Contratti.COD, Contratti.CLIENTE, gruppi.gruppo,
gruppi.quantità, gruppi.tipo_contratto, gruppi.px,
gruppi.potenza,gruppi.destinazione,gruppi.note, Contratti.cont_dal,
Contratti.cont_al, Contratti.disdetta,Contratti.INDIRIZZO,Contratti.PROV
FROM Contratti INNER JOIN gruppi ON Contratti.ID = gruppi.idcliente
WHERE Contratti.cont_dal<= #Date()# AND Contratti.cont_al>=#Date()# AND
(Contratti.disdetta Is Null OR Contratti.disdetta ='') AND
gruppi.gruppo='tipogruppo'
ORDER BY gruppi.potenza"
Ciao a tutti
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 ha scritto nel messaggio 
news:dag8vf$l2e$1...@news.newsland.it...

Fatti una ricerca sul NG (o su Google) e cerca come convertire le date in
formato "nazionale" in formato ANSI: aaaa/mm/gg (parola chiave: dataansi)
Non avrai più problemi.
o puoi formattare la data : Format$([Data], "ddmmyyyy")

 Non avrai più problemi.

Il mio problema piu che latro è di capire quali risultati sono presenti in
una query e e queli invece mi vengono scartati a seconda della query usata.


 ha scritto nel messaggio
news:dag8vf$l2e$1...@news.newsland.it...

Ciao Francesco,
a me stupisce molto il fatto che la seconda query non ti renda l'errore di
sintassi.
Date() è una funzione non una costante scritta nel testo SQL, non va
racchiusa tra #
Ciao Giorgio

 Ciao Giorgio
Non so,forse dipenderà dalla versione del motore installata sul Server.Io
ho provato a togliere i # e ho notato l'unica differenza che con i # mi
restitutisce 505 records e senza 497 e volevo cercare di capire quali
fossero gli 8 records di differenza.Comunque già mi hai risposto dicendomi
che la versione corretta è quella senza #
Grazie


 che la versione corretta è quella senza #
si ma la cosa è veramente strana :-)
Ti consiglio di eseguire una select con solo i campi delle date e
controllare che effettivamente rientrino nell'intervallo desiderato
Query1
----
SELECT cont_dal,cont_al
FROM Contratti
WHERE Date() BETWEEN cont_dal AND cont_al
----
Query2
----
SELECT cont_dal,cont_al
FROM Contratti
WHERE #Date()# BETWEEN cont_dal AND cont_al
----
Ciao Giorgio

 Ciao Giorgio
In questa forma(molto piu leggibile della mia tra l'altro) effettivamente
con i cancelletti da errore,ma come l'avevo scritta io prima ho riprovato
ancora non da nessun errore,anche se da risultati diversi.
Comunque grazie.
Francesco
