Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2014
    Messaggi
    7

    [SQL] Errore su query sql

    Salve a tutti,ho un problema su una query sql che mi da errore sulle stringhe date che ricavo come da variabili 'dal e 'alSe invece inserisco una data FISSA (come nella stringa sql in REM, funziona)mi sapete dire dove sbaglio ???



    dal = Dateadd("d", -1, Date())al = DateAdd("d", 7, Date())

    'PERCORSO DATABASEurl_DB = "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("/mdb-database/miotabase.mdb")
    Set Conn = Server.CreateObject("ADODB.Connection")
    conn.Open url_DBstrOrderBy = "Data"Set RS = Server.CreateObject("ADODB.Recordset")

    'sql = "SELECT * FROM Partite WHERE Data BETWEEN #" + "20/03/2014" + "#" + " AND " + "#" + "30/03/2014" + "#" + " ORDER BY " + strOrderBy + ";" QUESTO FUNZIONA !!!!!

    sql = "SELECT * FROM Partite WHERE Data >=#" + dal + "#" + " AND Data <=#" + al + "#" + " ORDER BY " + strOrderBy + ";"


    Dove sbaglio ???
    Grazie
    Kairex
    Ultima modifica di Kairex; 14-05-2014 a 08:50

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    forse perchè dal e al sono DATE e non stringhe?

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2014
    Messaggi
    7
    Quote Originariamente inviata da 123delphi321 Visualizza il messaggio
    forse perchè dal e al sono DATE e non stringhe?
    Ciao Delphi.... ma nella tabella del DB access che apro il formato è data; e inoltre ho sostituito gli apici ai cancelletti per vedere se era quello il problema, ma mi da errore in ogni caso


    e questo è l'errore che mi restituisce.......

    Microsoft VBScript runtime error '800a000d'
    Type mismatch: '[string: "SELECT * FROM Partit"]'


    Ultima modifica di Kairex; 14-05-2014 a 09:46

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    ma la stringa che hai postato:

    sql = "SELECT * FROM Partite WHERE Data >=#" + dal + "#" + " AND Data <=#" + al + "#" + " ORDER BY " + strOrderBy + ";"

    ci sono dal e al che sono formato DATE e tu cerchi di concatenare string e date

    devi convertire dal e al in string per unire in string

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2014
    Messaggi
    7
    Quote Originariamente inviata da 123delphi321 Visualizza il messaggio
    ma la stringa che hai postato:

    sql = "SELECT * FROM Partite WHERE Data >=#" + dal + "#" + " AND Data <=#" + al + "#" + " ORDER BY " + strOrderBy + ";"

    ci sono dal e al che sono formato DATE e tu cerchi di concatenare string e date

    devi convertire dal e al in string per unire in string

    Ok , ma come faccio a trasformare DAL e AL in stringhe ???
    in questo modo :
    dal = Str$(Dateadd("d", -1, Date()))
    al = Str$(DateAdd("d", 7, Date()))

    Non sono molto esperto , puoi darmi un suggerimento ???

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    devi usare una funzione inclusa nel tuo db.

    che db usi?

    questa cosa la devi fare lato db o lato programma?

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2014
    Messaggi
    7
    Uso Access il campo è impostato su DATA con formato gg/mm/aaaa)
    e uso ASP

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2014
    Messaggi
    7
    RISOLTO !!!
    Questo è il codice:

    oggi = Date()


    dal = Cstr(oggi - 1) ' 1 giorno prima della data odierna


    al = Cstr(oggi + 7) ' 7 giorni dopo della data odierna


    url_DB = "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("/mdb-database/miodatabase.mdb")


    Set Conn = Server.CreateObject("ADODB.Connection")


    conn.Open url_DB


    strOrderBy = "Data"


    Set RS = Server.CreateObject("ADODB.Recordset")


    sql = "SELECT * FROM Partite WHERE Data BETWEEN #" + dal + "#" + " AND " + "#" + al + "#" + " ORDER BY " + strOrderBy + ";"


    Grazie 123delphi321 per la tua disponibilità !

  9. #9
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    secondo me è meglio cosi:

    codice:
    sql = "SELECT * FROM Partite WHERE Data BETWEEN #" & dal & "# AND #" & al & "# ORDER BY " & strOrderBy & ";"

    Pero non ho capito se hai un motivo particolare per mettere come concatenatore il + alposto del &

    .

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2014
    Messaggi
    7
    Quote Originariamente inviata da nman Visualizza il messaggio
    secondo me è meglio cosi:

    codice:
    sql = "SELECT * FROM Partite WHERE Data BETWEEN #" & dal & "# AND #" & al & "# ORDER BY " & strOrderBy & ";"

    Pero non ho capito se hai un motivo particolare per mettere come concatenatore il + alposto del &

    .
    No no, nessun motivo. Anzi se dici che è meglio con &, lo cambio ;

    Ultimo suggerimento: se volessi aggiungere un altro ordinamento (oltre la data ), per esempio per ora come lo concateno col il precedente ? cioè cosi' ???

    strOrderOra = "Ora" ' ora è il campo Ora della Tabella access
    sql = "SELECT * FROM Partite WHERE Data BETWEEN #" & dal & "# AND #" & al & "# ORDER BY " & strOrderBy & strOrderOra & ";"

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.