Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Type mismatch

  1. #1

    Type mismatch

    Ciao a tutti,

    faccio la seguente operazione per verificare che il valore di un campo (campo1) , se maggiore ad un altro (campo2) deve assumere il suo valore.
    Così:

    codice:
    if session("campo1") > "& campo2 &" then
    session("campo1") = "& campo2 &"
    end if
    mi restituisce il seguente errore:

    codice:
    Microsoft VBScript runtime error '800a000d' 
    
    Type mismatch: '[string: "& campo2 &"]'
    la domanda è... questo errore è dovuto al fatto che 'campo2' è in formato valuta?
    Comunque ho provato a cambiare in numerico ma niente da fare... stesso errore sempre.
    Dove sbaglio? Consigli?

    Grazie

  2. #2
    "& campo2 &" e' una stringa literal e vale esattamente "& campo2 &".

    probabilmente volevi scrivere

    if session("campo1") > campo2 then
    session("campo1") = campo2
    end if

  3. #3
    Grazie della risposta.
    Ho provato anche così... in questo caso però non funziona perché mi setta sempre il campo1 a valore 0 in qualsiasi caso.

    campo1 è un valore di una variabile di sessione
    campo2 è un campo che tiro su dalla DB

    Altre idee? Grazie

  4. #4
    fatti stampare i valori prima della IF e controlla

  5. #5
    Se tolgo il controllo e stampo appunto campo1 (variabile di sessione) e campo2 selezionato dal DB... sono corretti.

  6. #6
    sono numerici? se si, di che tipo? (intero, currency, ecc)

  7. #7
    campo2 era di tipo Valuta, poi ho provato a cambiarlo in Numerico.

    campo1 andrà poi a finire in DB come numerico anche lui... ma questo devo ancora farlo... ora è solo un valore passato per variabile di sessione che confronto appunto con campo2.

  8. #8
    ok. quindi...
    codice:
    if CCur(session("campo1")) > CCur(campo2) then
       session("campo1") = CCur(campo2)
    end if

  9. #9
    Anche così non va... mi da sempre campo1 = 0. Comunque ora non ho + a che fare con campi valuta. Entrambi sono considerati numerici.

    Comunque ci dev'esser qualcosa che non quadra a livello di controllo.

    Se ad esempio faccio

    codice:
    if session("campo1") > campo2 then
    response.write ("si")
    else
    response.write ("no")
    end if
    mi viene sempre si anche quando campo1 è minore di campo2

  10. #10
    Ce l'ho fatta... come sempre era una ca...

    codice:
    sql = "SELECT campo2 FROM tabella"
    set rs = conn.execute(sql)
    							
    if session("campo1") > rs("campo2") then
    session("campo1") = rs("campo2")
    end if
    grazie dell'interessamento!


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.