5 messaggi dal 26 giugno 2006
Salve a tutti.
Ho costruito una pagina asp che comunica con un db access per ottenere i titoli delle notizie pubblicate a partire da una certa data. Questo è il codice che ho scritto:
   Dim conn
   Set conn = Server.CreateObject("ADODB.Connection")
   conn.Open "driver={Microsoft Access Driver                        (*.mdb)};dbq="&Server.MapPath("newsdb.mdb")      
   Dim rs
   Set rs = Server.CreateObject("ADODB.Recordset")
   rs.Open "SELECT * FROM notizie WHERE notizie.data > #01/06/2006# ORDER BY notizie.data ", conn

Dim x
for x=1 to 5
if Not rs.EOF then 
Response.Write("titolo" & x & "=" & rs("titolo"))

If x<5 then Response.Write("&")
rs.MoveNext()
End if 
next

rs.Close
Set rs=Nothing


Andando ad interrogare la pagina, nel risultato ho anche titoli di notizie che sono state pubblicate in data antecedente al 01/06/2006.
Cosa sbaglio?
Grazie mille.
Ciao,
prima del codice, controlla che il database non operi usando la data in formato americano. Potrebbe darti dei problemi come quello che hai postato.

"This message was written using 100% recycled electrons"
5 messaggi dal 26 giugno 2006
ras purtroppo non credo sia quello il problema. io credo che sia un problema dell'operatore di comparazione < o > visto che se io uso l'operatore = il risultato ke mi scaturisce dall'interrogazione della pagina è corretto!!!
non so davvero quale sia il problema.
501 messaggi dal 09 giugno 2006
Contributi
Ciao.

Assunto che gli operatori indicati nella query non possono non funzionare, l'unico problema sembrerebbe essere quello descritto da ras78 ossia un problema legato alle date.

La data indicata (> #01/06/2006#) potrebbe essere quindi interpretata come 6 gennaio 2006 e questo giustificherebbe il fatto che i record restituiti sono antecedenti il 1 giugno 2006.

Puoi effettuare un ulteriore controllo in questo senso? In un lavoro che ho sviluppato anni fa ricordo (e spero di non ricordare male) che utilizzavo la seguente sintassi: #YYYY-MM-DD#. Per te diventerebbe:

WHERE notizie.data > #2006-06-01#

sfruttando una caratteristica del Jet Engine di convertire correttamente la data senza ambiguità.

Per il discorso che con l'operatore "=" funziona prima di tutto ti chiedo se lo hai testato con la stessa data (01/06/06).

Ciao.

.:. Marcello Rutter .:.
5 messaggi dal 26 giugno 2006
Innanzitutto chiedo scusa a ras per non avergli dato ascolto dall'inizio, in quanto alla fine ho scoperto che effettivamente è un problema di ambiguità del formato data.
Come posso riuscire ad aggirare questo problema?
Grazie mille dell'aiuto.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.