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

Discussione: Consiglio su query

  1. #1

    Consiglio su query

    Ciao a tutti,

    ho una tendina con 3 valori:

    codice:
      							    <option value="" selected="selected">--------------------- </option>           	
               						    <option value="GradoEsiguo">Grado esiguo</option>
               						    <option value="GradoMedio">Grado medio</option>
               						    <option value="GradoElevato">Grado elevato</option>
    							    </select>
    passo il valore selezionato e lo submitto alla pagina successiva con la sessione:

    codice:
    AgiLT = trim(request.form("AgiLT"))
    session("AgiLT") = AgiLT
    poi faccio un controllo sulla scelta effettuata e vorrei fare una query... solo che non riesco a costruirla bene...
    Allora il controllo è di questo genere:

    codice:
    if session("AgiLT") = GradoEsiguo" then
    SELECT ...				
    end if
    
    if session("AgiLT") = GradoMedio" then
    SELECT ...				
    end if
    
    if session("AgiLT") = GradoElevato" then
    SELECT ...
    end if
    la tabella sulla quale voglio basare la query è la seguente:

    Agi
    IdAgi
    GradoEsiguo (di tipo visto si/no)
    GradoMedio (di tipo visto si/no)
    GradoElevato (di tipo visto si/no)
    Anno
    Valore

    l'anno lo prendo da una data grazie alla funzione DatePart e lo assegno ad una variabile chiamata AnnoData.

    La query (ad esempio nel caso che la scelta sia GradoEsiguo) dovrebbe essere qualcosa di simile...

    codice:
    SELECT Valore FROM Agi WHERE ANNO=" & AnnoData ... AND GradoEsiguo ...
    mi aiutate a costruirla per favore?

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Ancora?
    Perché un altro thread per la stessa cosa???
    1) Perché usi le session se non ti servono?
    2) Gli IF session... sono sbagliati
    3) Se hai costruito una query posta la tua

    Roby

  3. #3
    Originariamente inviato da Roby_72
    Ancora?
    Perché un altro thread per la stessa cosa???
    1) Perché usi le session se non ti servono?
    2) Gli IF session... sono sbagliati
    3) Se hai costruito una query posta la tua

    Roby

    Scusa per il nuovo thread... ineffetti potevo continuare nell'altro.

    1) La session mi serve per passare il valore alla pagina successiva che verrà verificato tramite l'if.

    2) Dove sbagliati? Ops... forse ho dimenticato un paio di virgolette... così allora:

    codice:
    if session("AgiLT") = "GradoEsiguo" then
    SELECT ...
    end if
    
    if session("AgiLT") = "GradoMedio" then
    SELECT ...
    end if
    
    if session("AgiLT") = "GradoElevato" then
    SELECT ...
    end if
    3) Io chiedevo aiuto appunto per fare la query giustamente...

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Non usare campi si/no ma numerici di tipo byte 0/1.
    Così quando abbondanerai Access non dovrai cambiare né la tabella né gli script.
    Per il resto, prova a buttar giù tu la query, al massimo la correggiamo se non va.

    Roby

  5. #5
    Originariamente inviato da Roby_72
    Non usare campi si/no ma numerici di tipo byte 0/1.
    Così quando abbondanerai Access non dovrai cambiare né la tabella né gli script.
    Per il resto, prova a buttar giù tu la query, al massimo la correggiamo se non va.

    Roby
    Ok grazie, ho provveduto a cambiare la tabella con campi numerici di tipo byte.

    La query è:

    codice:
    if session("AgiLT") = "GradoEsiguo" then
    
    sql1 = "SELECT Valore FROM Agi WHERE Anno=" & AnnoDataDecorrenza & " AND AgiEsiguo ="1" "	
    				
    set rs = conn.xecute(sql1) 
    
    end if
    Mi da quest'errore alla riga della query:

    codice:
    Errore di compilazione di Microsoft VBScript (0x800A0401)
    Prevista fine istruzione
    Poi per stamparla dovrei fare così?

    codice:
    <% response.write rs(Valore) %>

  6. #6
    Ho modificato così:

    codice:
    if session("AgiLT") = "GradoEsiguo" then
    sql1 = "SELECT Valore FROM Agi WHERE Anno=" & AnnoDataDecorrenza & " AND AgiEsiguo='1' "						
    
    set rs = Conn.execute(sql1) 
    rs.close
    set rs = nothing
    end if
    e ora mi da l'errore:

    codice:
    Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
    [Microsoft][Driver ODBC Microsoft Access] Tipi di dati non corrispondenti nell'espressione criterio.
    alla riga:

    codice:
    set rs = Conn.execute(sql1)

  7. #7
    up

  8. #8
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Dalla tua query risulta che il campo anno è numerico ed il campo AgiEsiguo è di tipo testo.
    Scommetto che uno dei due sia sbagliato.

    Roby

  9. #9
    I campi AgiEsiguo, AgiMedio e AgiElevato li ho cambiati tutti in Numerici di tipo byte (come mi hai detto prima).

    Il campo Anno invece è un campo Numerico di tipo intero.

    Cosa devo fare?

  10. #10
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    codice:
    ... AND AgiEsiguo=1"
    Roby

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.