Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    434

    Problema query campo data

    Ragazzi mi spiegate cosa è che non funziona in questo script?

    codice:
    <%@ LANGUAGE = JScript %>
    
    <% 
    
    function demoDate(){
    var d, s; //Dichiara variabili.
    d = new Date(); //Crea oggetto Date.
    s += d.getDate() + "/"; //Recupera il giorno
    s += (d.getMonth() + 1) + "/"; //Recupera il mese
    s += d.getYear(); //Recupera l'anno.
    return(s); //Restituisce la data.
    }
    
    Response.Write(demoDate()); //test per vedere se funge lo scriptino
    
    // Istanzio l'oggetto Connection
    var ADOConn = new ActiveXObject("ADODB.Connection");
    
    // Creo la STRINGA DI CONNESSIONE
    var strConn = "";
    strConn += "driver={Microsoft Access Driver (*.mdb)};";
    strConn += "dbq=" + Server.MapPath("/mdb-database/database.mdb");
    
    // Apro la connessione al database selezionato
    ADOConn.Open(strConn);
    
    var sql = "SELECT * FROM ultimi_prox WHERE data = 27/05/2006 "
    var ris = ADOConn.Execute(sql);
    
    // Stampo i dati contenuti nel database
    while (!ris.EOF) {
    
     Response.Write("" + ris("nome") + "");
    
      ris.MoveNext();
    }
    
    // Chiudo la connessione
    ADOConn.Close();
    
    %>
    se ad esempio sostituisco
    codice:
    var sql = "SELECT * FROM ultimi_prox WHERE data = 27/05/2006 "
    con
    codice:
    var sql = "SELECT * FROM ultimi_prox WHERE id = 1 "
    mi prende correttamente il primo record.. quindi non ho sbagliato, ad esempio, a dargli il percorso del db o cose simili... c'è qualcosa che mi manca nella quey al campo data...

    Sapreste dirmi cosa?

    E inoltre, se volessi che la query non fosse del tipo

    codice:
    data=gg/mm/aaaa
    ma

    codice:
    data < demoDate()
    devo fare qualcosa di particolare?

    Il risultato di un response.write now() è la data in formato gg/mm/aaaa, quindi devo utilizzare questo formato anche per la query, no?


  2. #2
    Utente di HTML.it L'avatar di Mizushi
    Registrato dal
    Aug 2005
    Messaggi
    1,125
    "data" è parola riservata nei db, o la cambi o la metti tra parentesi quadre [data]:

    http://www.mmkit.com/article.php?sid=297

  3. #3
    e poi:
    codice:
    var sql = "SELECT * FROM ultimi_prox WHERE [data] =#27/05/2006#"

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    434
    ciao e grazie innanzitutto

    Ora funziona, solo che voglio fare la quey a seconda della data odierna. Quindi, ho fatto varie prove, che mi danno tutte errore.

    codice:
    <html>
    <body>
    
    <%@ LANGUAGE = JScript %>
    
    <% 
    
    function demoDate(){
    var d, s; //Dichiara variabili.
    d = new Date(); //Crea oggetto Date.
    s += d.getDate() + "/"; //Recupera il giorno
    s += (d.getMonth() + 1) + "/"; //Recupera il mese
    s += d.getYear(); //Recupera l'anno.
    return(s); //Restituisce la data.
    }
    
    var prova = demoDate();
    
    Response.Write(prova); // solo per motivi di debugging, per vedere se funge correttamente
    
    
    // Istanzio l'oggetto Connection
    var ADOConn = new ActiveXObject("ADODB.Connection");
    
    // Creo la STRINGA DI CONNESSIONE
    var strConn = "";
    strConn += "driver={Microsoft Access Driver (*.mdb)};";
    strConn += "dbq=" + Server.MapPath("/mdb-database/database.mdb");
    
    // Apro la connessione al database selezionato
    ADOConn.Open(strConn);
    
    var sql = "SELECT * FROM ultimi_prox WHERE giorno > #" & prova &"# "
    var ris = ADOConn.Execute(sql);
    
    // Stampo i dati contenuti nel database
    while (!ris.EOF) {
    
     Response.Write("" + ris("nome") + "");
    
      ris.MoveNext();
    }
    
    // Chiudo la connessione
    ADOConn.Close();
    
    %>
    
    
    </body>
    </html>
    mi dà

    codice:
    Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
    
    [Microsoft][ODBC Microsoft Access Driver] Invalid SQL statement; expected 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT', or 'UPDATE'.
    
    /public/testing.asp, line 34
    la linea 34: var ris = ADOConn.Execute(sql);

    Quest'ultima prova l'ho fatta dopo qualche ricerca su google, ma non ha dato gli esiti sperati.

    Quest'altro invece:

    codice:
    var sql = "SELECT * FROM ultimi_prox WHERE giorno > prova "


    codice:
    Microsoft OLE DB Provider for ODBC Drivers error '80040e10'
    
    [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
    
    /public/testing.asp, line 34
    Che faccio?




  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    434
    ho deciso di riscrivere il codice in vbscript:

    codice:
    <html>
    <body>
    
    <%@ LANGUAGE = VBScript %>
    
    <%
    
    strAccessDB = "/mdb-database/database.mdb"
    
    
    Set adoCon = Server.CreateObject("ADODB.Connection")
    
    
    strCon = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath(strAccessDB)
    
    
    adoCon.Open strCon
    
    response.write date()
    
    
    Dim rs
    
    Set rs = Server.CreateObject("ADODB.Recordset")
    
    rs.Open "SELECT * FROM ultimi_prox WHERE giorno <= #" & Date() & "# ", adoCon
    
    Response.Write("
    ")
    
    
    Do While Not rs.EOF
    Response.Write rs("nome") & " " & rs("link") & " 
     "
    rs.MoveNext
    Loop
    
    
    
    adoCon.close
    Set adoCon = nothing
    
    %>
    
    
    
    </body>
    </html>
    I risultati sono questi, ho messo dopo i // i miei commenti


    10/06/2006 // la data di oggi.. tutto ok
    10/05/2004 primo // giusto, viene prima di oggi
    10/06/2006 secondo // vedi sopra
    11/06/2006 terzo // ??
    30/06/2006 sesto // ??
    26/08/2006 settimo // ??

    Correttamente non visualizza 2 record dove il valore dell'anno è maggiore: 03/06/2008 and 21/06/2007, ma, ad esempio, il 26/08/2006 viene DOPO di oggi, e non dovrebbe visualizzarlo..

    Perchè succede questo?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.