Newsgroup: it.comp.www.asp
Titolo: come confrontare date access/asp?

<%@ LANGUAGE="VBSCRIPT" %>
<% Response.Expires = 0 %>
<html>
<head>
<meta NAME="GENERATOR" Content="Microsoft FrontPage 3.0">
<meta HTTP-EQUIV="Content-Type" content="text/html;
charset=iso-8859-1">
<title>Indice</title>
</head>
<body>
<%
Public dbTime
Public rsTime
Dim strSQL
Dim txtNome
Dim TTime
%>
<!--webbot bot="PurpleText" PREVIEW="Aggiorno la variabile di pagina"
-->
<% txtNome = "Index" %>
<% Session("txtNome") = txtNome%>
<% TTime = Session("TTime")%>
<p align="center">Stai osservando la pagina web denominata
<%Response.Write txtNome%> </p>
<p align="center">In questo momento stai navigando all'interno del
contesto temporale
relativo all'istante <%Response.Write Session("TTime")%> </p>
<p align="center">(Facciamo riferimento al fuso orario di Parigi e
Roma, ovvero il
Server Time)</p>
<p align="center">La variabile di sessione č impostata su
<%Response.Write Session ("txtNome")%> </p>
<p><%
Set dbTime = Server.CreateObject("ADODB.Connection")
dbTime.Open("webtime")
%> </p>
<!--webbot bot="PurpleText" PREVIEW="Creo l'istruzione SQL" -->
<%
strSQL = "SELECT Tempo.Pagina "
strSQL = strSQL & "FROM Tempo "
strSQL = strSQL & "WHERE Tempo.Nome = '" & txtNome & "' "
strSQL = strSQL & "AND Tempo.Inizio < TTime "%> 
<p align="center">Verifica della stringa SQL:</p>
<p align="center"><% Response.Write (strSQL) %></p>
<!--webbot bot="PurpleText" PREVIEW="Eseguo Query SQL" -->
<%
Set rsTime = Server.CreateObject("ADODB.Recordset")
rsTime.Open strSQL, dbTime, 3, 3
%>
<p><!--webbot bot="PurpleText" PREVIEW="Restituisco il testo
desiderato" --> 
<%Do While NOT rsTime.EOF%>
<%Response.Write rsTime.fields("Pagina").value %> 
<%rsTime.MoveNext%>
<%Loop%>
</p>
Le pagine ASP sono bellissime,... quando vanno! Nel mio caso vanno
raramente!!! 
Devo interrogare un DB Access con ASP. Dopo aver fatto una selezione
in base al nome (questa adesso funziona perfettamente, dopo il vostro
prezioso aiuto), devo fare un confronto fra la data attuale (contenuta
in TTime) e una data di riferimento nel DB (tipo data).
Il problema deriva della istruzione SQL (penso): se  metto delle
virgolette attorno alla variabile TTime mi dice che confronto
variabili di tipo diverso (ovvio), ma se non le metto mi da l'errore
riportato sotto. Nota: senza l'AND sul tempo, tutto funziona
egregiamente, quindi l'errore dovrebbe essere solo li'.
Vi prego, datemi una mano
ciao
Claudio
La risposta a tutti i miei sforzi e' questa:
Stai osservando la pagina web denominata Index 
In questo momento stai navigando all'interno del contesto temporale
relativo all'istante 23/11/98 
(Facciamo riferimento al fuso orario di Parigi e Roma, ovvero il
Server Time)
La variabile di sessione č impostata su Index 
Verifica della stringa SQL:
SELECT Tempo.Pagina FROM Tempo WHERE Tempo.Nome = 'Index' AND
Tempo.Inizio < TTime 
(e fin qua tutto bene, poi...)
Microsoft OLE DB Provider for ODBC Drivers error '80040e10' 
[Microsoft][ODBC Microsoft Access 97 Driver] Too few parameters.
Expected 1. 
/wwwtemp/prova.asp, line 54 
la line 54 e': rsTime.Open strSQL, dbTime, 3, 3
Ecco il sorgente incriminato:
<%@ LANGUAGE="VBSCRIPT" %>
<% Response.Expires = 0 %>
<html>
<head>
<meta NAME="GENERATOR" Content="Microsoft FrontPage 3.0">
<meta HTTP-EQUIV="Content-Type" content="text/html;
charset=iso-8859-1">
<title>Indice</title>
</head>
<body>
<%
Public dbTime
Public rsTime
Dim strSQL
Dim txtNome
Dim TTime
%>
<!--webbot bot="PurpleText" PREVIEW="Aggiorno la variabile di pagina"
-->
<% txtNome = "Index" %>
<% Session("txtNome") = txtNome%>
<% TTime = Session("TTime")%>
<p align="center">Stai osservando la pagina web denominata
<%Response.Write txtNome%> </p>
<p align="center">In questo momento stai navigando all'interno del
contesto temporale
relativo all'istante <%Response.Write Session("TTime")%> </p>
<p align="center">(Facciamo riferimento al fuso orario di Parigi e
Roma, ovvero il
Server Time)</p>
<p align="center">La variabile di sessione č impostata su
<%Response.Write Session ("txtNome")%> </p>
<p><%
Set dbTime = Server.CreateObject("ADODB.Connection")
dbTime.Open("webtime")
%> </p>
<!--webbot bot="PurpleText" PREVIEW="Creo l'istruzione SQL" -->
<%
strSQL = "SELECT Tempo.Pagina "
strSQL = strSQL & "FROM Tempo "
strSQL = strSQL & "WHERE Tempo.Nome = '" & txtNome & "' "
strSQL = strSQL & "AND Tempo.Inizio < TTime "%> 
<p align="center">Verifica della stringa SQL:</p>
<p align="center"><% Response.Write (strSQL) %></p>
<!--webbot bot="PurpleText" PREVIEW="Eseguo Query SQL" -->
<%
Set rsTime = Server.CreateObject("ADODB.Recordset")
rsTime.Open strSQL, dbTime, 3, 3
%>
<p><!--webbot bot="PurpleText" PREVIEW="Restituisco il testo
desiderato" --> 
<%Do While NOT rsTime.EOF%>
<%Response.Write rsTime.fields("Pagina").value %> 
<%rsTime.MoveNext%>
<%Loop%>
</p>
<%
rsTime.Close
dbTime.Close
Set rsTime = Nothing
Set dbTime = Nothing
%> 
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p align="center">Se non sei soddisfatto dell'ambito temporale in cui
ti trovi puoi
effettuare un <a href="timejump.asp">Balzo Temporale</a></p>
<p align="center">Se vuoi semplicemente tornare alla versione piů
recente del sito, devi
solo tuffarti nel <a href="now.asp">presente</a>!</p>
</body>
</html>
_________________________________________________________________
Se il genio e' destinato a non essere capito fino alla sua morte,
...allora spero di rimanere un'incompreso ancora a lungo
                                            Claudio Cristofori

Non ho capito bene cosa ti serve spero che queste indicazioni possano essere
utili:
il campo data in SQL deve essere indicato come:  '#25/12/98#'
con i cancelletti a racchiudere la data, se essa è una variabile devi
scrivere:
'#" & data & "#'
gli apici all'esterno e le virgolette doppie all'interno.
Inoltre fai attenzione che, a seconda delle impostazioni del server, Access
potrebbe accettare date in formato americano mm/gg/aa e quindi dovrai
"ricostruire" la data utilizzando le funzioni day(), month(), year()
Spero di esserti stato utile
GiampY
gpa...@com-e.com

Fai sempre lo stesso errore!!! Stai attento a come concateni le stringhe!!
strSQL = "SELECT Tempo.Pagina "
strSQL = strSQL & "FROM Tempo "
strSQL = strSQL & "WHERE Tempo.Nome = '" & txtNome & "' "
-->>  strSQL = strSQL & "AND Tempo.Inizio < " & TTime %>  <<---
la variabile TTime va fuori delle virgolette!!!! Comunque mi sei
simpatico!!!
Buon lavoro Francie

Grazie a tutti per gli utilissimi consigli!
Quello determinante me l'ha fornito "GIAMPY"
La soluzione ai miei problemi e' data dal codice qua sotto:
strSQL = "SELECT Pagina, Inizio, Fine "
strSQL = strSQL & "FROM Tempo "
strSQL = strSQL & "WHERE Tempo.Nome = '" & txtNome & "' "
strSQL = strSQL & "AND Tempo.Inizio < #" & TTime & "# "
strSQL = strSQL & "AND Tempo.Fine > #" & TTime & "# "
strSQL = strSQL & "Order BY Inizio "
Ciao
Claudio 
PS Odio le virgolette e i cancelletti!!!


"ricostruire" la data utilizzando le funzioni day(), month(), year()
I formati corrispondo (mm/gg/aa), ma non va lo stesso; cosa puo'
essere?
Grazie in anticipo
Claudio
