Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    errore penso banale in query

    perchè mi da errore se non passo nessun dato via querystring perchè voglio ottenere tutti i record?
    codice:
    "SELECT * FROM q_contratti WHERE (data_immatricolazione LIKE '%/" & request.QueryString("mese") & "/" & request.QueryString("anno") & "') AND (modello_auto = "&request.querystring("modello")&") AND (venditore = "&request.querystring("venditore")&")"
    Tipo di errore:
    Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
    [Microsoft][Driver ODBC Microsoft Access] Parentesi chiusa in eccesso: ) nell'espressione della query '(data_immatricolazione LIKE '%/%/%') AND (modello_auto = ) AND (venditore = )'.
    http://www.ecogiochi.it - il primo blogames del pianeta
    http://www.grogonet.com - Grog on network

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Devi fare una query dinamica.
    Mettere le singole voci dopo la WHERE solo se risultano compilate.

    Roby

  3. #3
    posta la stringa sql

  4. #4
    Dovresti controllare il contenuto dei dati che invii

    Ti crei la clausola where in modo dinamico


    clausola_where = " 1=1 "
    if len(request("campo1")) > 0 then
    clausola_where = clausola_where & " AND pippo = " & request("campo1")
    end if
    if len(request("campo2")) > 0 then
    clausola_where = clausola_where & " AND pluto = " & request("campo2")
    end if


    ... alla fine


    "SELECT * FROM q_contratti WHERE " & clausola_where

    Questo è un modo ma ce ne sono tanti altri...

  5. #5
    cavoli.
    non è possibile gestire 4 valori in un unica query?
    ho fatto questo, ma se metto sia il modello che il venditore mi filtra solo il venditore...
    codice:
    if modello <> "" then 
    	sql="(data_immatricolazione LIKE '%/" & request.QueryString("mese") & "/" & request.QueryString("anno") & "') AND modello_auto = "&modello&""
    elseif venditore <> "" then
    	sql="(data_immatricolazione LIKE '%/" & request.QueryString("mese") & "/" & request.QueryString("anno") & "') AND venditore = "&venditore&""
    elseif modello <> "" AND venditore <> "" then
    	sql="(data_immatricolazione LIKE '%/" & request.QueryString("mese") & "/" & request.QueryString("anno") & "') AND (modello_auto = "&modello& ") AND (venditore = "&venditore&")"
    else
    	sql = "(data_immatricolazione LIKE '%/" & request.QueryString("mese") & "/" & request.QueryString("anno") & "') AND (modello_auto LIKE '%"&request.querystring("modello")&"%') AND (venditore LIKE '%"&request.querystring("venditore")&"%')"
    end if
    
    
    Recordset1_cmd.CommandText = "SELECT * FROM q_contratti WHERE "& sql &""
    e questi sono i valori che passo:
    tutti pieni:
    codice:
    http://localhost/gestione/vedi_filtrate.asp?modello=3&venditore=3&mese=02&anno=2006&Submit=cerca
    tutti vuoti:
    codice:
    http://localhost/gestione/vedi_filtrate.asp?modello=&venditore=&mese=%25&anno=%25&Submit=cerca
    http://www.ecogiochi.it - il primo blogames del pianeta
    http://www.grogonet.com - Grog on network

  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Utilizza una variabile di comodo...

    codice:
    sql = "SELECT * FROM tabella"
    
    txt = ""
    if campo1 &"[]" <> "[]" then
    txt = "campo1 = '"& campo1 &"'"
    end if
    
    if campo2 &"[]" <> "[]" then
    if txt <> "" then txt = txt &" AND"
    txt = txt &" campo2 = '"& campo2 &"'"
    end if
    
    ecc...
    
    if txt <> "" then
    sql = sql &" WHERE "& txt
    end if

  7. #7
    ROBY_72, mi puoi spiegare meglio cosa significa?
    sono alle prime armi e VOGLIO imparare!
    http://www.ecogiochi.it - il primo blogames del pianeta
    http://www.grogonet.com - Grog on network

  8. #8
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Significa che devi costruirti la query un pezzetto alla volta.
    Se il mese lo passi allora lo metti nella query altrimenti no.
    E così per tutti i campi passati in querystring.
    Ovviamente nel mio esempio devi cambiare i nomi dei campi che ho inserito a caso.

    Roby

  9. #9
    ok, ho capito.

    parecchio complesso però eheheh vedo di mettermici e speriamo bene.

    una cosa, cosa significa in parole povere
    codice:
    if campo1 &"[]" <> "[]"
    per adesso grazie infinite.
    ciao
    http://www.ecogiochi.it - il primo blogames del pianeta
    http://www.grogonet.com - Grog on network

  10. #10
    ce l'ho, fatta!
    però adesso devo annidare un altro if, perchè mi da errore?

    codice:
    	if venditore &"[]" <> "[]" then
    		if txt <> "" then txt = txt &" AND"
    			if venditore = "222" then txt = txt &" venditore NOT IN (7,8,9,10,11,12)" 
    	txt = txt &" venditore = "& venditore &""
    	end if
    http://www.ecogiochi.it - il primo blogames del pianeta
    http://www.grogonet.com - Grog on network

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.