17 messaggi dal 05 agosto 2001
www.macsiti.com
Ciao, mi aiutereste con questa che non riesco a risolvere? magari è una scemenza magari no. Ho un Db che mi registra l'ora in cui una persona viene sul sito. Tipo

Tabella OnLine
UtentiID - User - ISonline - tempo
1 - Marco - 1 - 10/02/03 20.01.40
2- Carlo - 1 - 10/02/03 21.01.45
3- Franco - 0 - 10/02/03 21.02.00

Io voglio mostrare solo chi è online e lo faccio con

set rs = db.execute("SELECT COUNT(UtentiID) as Total from OnLine WHERE ISonline > 0 ")

Mi dice che gli utenti sono 2, e sono Marco e Carlo (altra query) Adesso vorrei NON mostrare solo quelli che sono stati online meno di 2 minuti e faccio (mi trovo cosa vale 2 minuti fà)

minuti = DateAdd("n", -2, now) ' questo funzia ma non nella query qui sotto

set rs = db.execute("SELECT COUNT(UtentiID) as Total from OnLine WHERE ISonline > 0 AND tempo > ''&cdate(minuti) " )
OPPURE
set rs = db.execute("SELECT COUNT(UtentiID) as Total from OnLine WHERE ISonline > 0 AND tempo > ''&minuti " )

mi dice Microsoft OLE DB Provider for ODBC Drivers errore "80040e10' [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1

INVECE
set rs = db.execute("SELECT COUNT(UserID) as Total from OnLine WHERE ISonline > 0 AND tempo > "&minuti &" ")

dice [Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'ISonline = 0 AND tempo > 11/02/03 10.34.56'.


Marco
379 messaggi dal 06 settembre 2002
www.andytimes.com
Credo che l'errore (almeno nel secondo caso) sia relativo al delimitatore del valore date/time nella query SQL:prova con una delle due soluzioni:
set rs = db.execute("SELECT COUNT(UserID) as Total from OnLine WHERE ISonline > 0 AND tempo > #"&minuti &"#")
oppure
set rs = db.execute("SELECT COUNT(UserID) as Total from OnLine WHERE ISonline > 0 AND tempo > #'"&minuti &"'#")
non smetterò mai di consigliare, comunque, l'uso del formato yyyy-mm-gg hh.mm.ss per i campi date time... lo accettano tutti i db a prescindere dalle impostazioni internazionali e dal formato data del DBMS...
ciao e buon lavoro....

..:: and this is my web ::..
17 messaggi dal 05 agosto 2001
www.macsiti.com
Grazie quella che funziona è la prima

set rs = db.execute("SELECT COUNT(UserID) as Total from OnLine WHERE ISonline > 0 AND tempo > #"&minuti &"#")

Non ho ben compreso cosa è stato fatto. Mi dici in 2 righe o mi dici dove trovo qcosa per documentarmi? Ho 2 libri ed un guida VBscript ma non ho trovato niente.


Marco
379 messaggi dal 06 settembre 2002
www.andytimes.com
Access accetta le date comprese tra i cancelletti oppure nel formato yyyy-mm-dd.. tra # e # puoi inserire la data nel formato internazionale settato sul server cosi che possa accettarlo.... ma credo che sia una peculiarità di casa MS...
ciao
PS ribadisco il consiglio del post precedente....

..:: and this is my web ::..
17 messaggi dal 05 agosto 2001
www.macsiti.com
Compreso e molte grazie davvero

PS. ho settato le date come mi hai detto. E lo tengo presente anche per altri siti.


Marco

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.