Newsgroup: it.comp.www.asp
Titolo: problema con date ed estrazione record

Ciao a tutti,
ho una tabella con un campo chiamato "BandiScadenza" di tipo "data/ora"
che contiene una data.
Devo creare un recordset in cui la il campo "BandiScadenza" abbia una
data maggiore o uguale a quella odierna, ovverosia una data futura o la
data di oggi.
E di questo recordset devo visualizzare un tot numero di record (il
numero dei record da visualizzare è preso da un campo di un'altra
tabella)
Ha sempre funzionato, ma "all'improvviso" (devo erroneamente modificato
qualcosa...) ha iniziato a visualizzarmi anche record la cui data è
già passata.
Ecco il codice:
DataCorrente = Month(Now()) & "/" & Day(Now()) & "/" & Year(Now())
					'Definizione della stringa SQL
					strSQL = "SELECT * FROM bandi WHERE BandiAnno=" & Year(Now()) & "
OR BandiScadenza>=#" & DataCorrente & "# ORDER BY BandiAnno DESC,
BandiNumero DESC"
					'Creazione dell'istanza del recordset
					Set objRS = Server.CreateObject("ADODB.Recordset")
					objRS.Open strSQL, objConn
					'Definizione della Stringa SQL delle variabili
					SQLVariabili = "SELECT * FROM variabili WHERE
NomeVariabile='ReferenteBandi'"
					Set RSVariabili = Server.CreateObject("ADODB.Recordset")
					RSVariabili.Open SQLVariabili, objConn
					'Visualizzazione dei dati della tabella
					ContBandi = 1
					NBandi = NBandi + 1
					If objRS.EOF and objRS.BOF then
						Response.Write "<p class='elenchi'>Non ci sono bandi attivi al
momento</p>"
					Else
						Do While ContBandi < NBandi
								Response.Write "<p class='elenchi'><IMG
SRC='images/bullet.gif'><A HREF='files/bandi/" & objRS("BandiAnno") &
"/" & objRS("BandiNumero") & "-" & objRS("BandiAnno") & " " &
objRS("BandiNome") & ".pdf' target='_blank'> " & "<B>" &
objRS("BandiNome") & "</B></A></p>"
								Response.Write "<p class='bottinelli'>E' possibile inviare
tramite email al settore " & RSvariabili("Parametro1") & " (" &
RSvariabili("Parametro2") & ") il proprio curriculum aggiornato entro
il <B class='data'>" & FormatDateTime(objRS("BandiScadenza"),2) & "</B>
"
								If objRS("BandiScadenza") = Date() then
									Response.Write "<span style='color: red; font-weight:
bold'><blink>(Ultimo giorno)</blink> </span>- <A HREF='mailto:" &
RSvariabili("Parametro3") & "?Subject=Bando " & objRS("BandiNumero") &
"-" & objRS("BandiAnno") & ": " & objRS("BandiNome") & "'>Invia
CV</A></p>"
								Else
									Response.Write "<A HREF='mailto:" & RSvariabili("Parametro3")
& "?Subject=Bando " & objRS("BandiNumero") & "-" & objRS("BandiAnno") &
": " & objRS("BandiNome") & "'>Invia CV</A></p>"
								End if
								' Spostamento al record successivo
								objRS.MoveNext
								ContBandi = ContBandi + 1
							If objRS.EOF then ContBandi = NBandi
						Loop
					End if
Please help
Grazie

 ho un campo chiamato "BandiScadenza" di tipo "data/ora"
I campi "data" sono insidiosi perché a seconda del "locale"
del computer vengono interpretati "dd/mm/yyyy" o "mm/dd/yyyy"
Per quanto tu faccia, il "rischio" di cattiva interpretazione
delle date è sempre in agguato. La soluzione che mi ha sempre
risolto tutto è di usare campi DOUBLE e di fare confronti fra
numeri reali.
Esempi:
DataCorrente = CDbl(Now())
DataDomani = CDbl(Now()) + 1
"SELECT * FROM ...... WHERE DataRecord >= " & Str$(DataDouble)
Ciao.
Mauro

Grazie per l'aiuto ma nell'attesa che questo post venisse messo online
sono riuscito a risolvere...il problema era nella stringa SQL
SELECT * FROM bandi WHERE BandiAnno=" & Year(Now()) & "
OR BandiScadenza>#" & DataCorrente & "# ORDER BY BandiAnno DESC
Ho tolto la condizione che BandiAnno sia uguale all'anno corrente,
perchè cosi me li includeva tutti indipendentemente dalla scadenza.
Grazie