Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21
  1. #1
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870

    Campo Si/No non corrispondente

    Buon inizio settimana a tutti,

    mi rivolgo al forum per la seguente difficoltà:

    tramite asp devo aggiornare un campo di una tbl di un dbase previsto come Si/No;

    sulla pagina asp che richiama i dati dal dbase visualizzo correttamente il classico quadratino sul quale inserire il flag; il problema è che inserendo questo flag e cercando di aggiornare la tbl del dbase la query va in errore, questo il code con l'errore:

    codice:
    <%
    cod=request.querystring("cod")
    BONIFICATO=Request.Form("BONIFICATO")
    
    SQL="UPDATE tbl set BONIFICATO='"&BONIFICATO&"' WHERE id="&cod
    Conn.Execute(SQL)
    Response.Redirect "index.asp"
    %>

    Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

    [Microsoft][Driver ODBC Microsoft Access] Tipi di dati non corrispondenti nell'espressione criterio

  2. #2
    Il campo Si/No prevede due valori : True o False, probabilmente la variabile BONIFICATO contiene un valore diverso e nella query non c'è bisogno dell'apice

    codice:
    SQL="UPDATE tbl set BONIFICATO="&BONIFICATO&" WHERE id="&cod

  3. #3
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    Originariamente inviato da Daniele25
    Il campo Si/No prevede due valori : True o False, probabilmente la variabile BONIFICATO contiene un valore diverso e nella query non c'è bisogno dell'apice

    codice:
    SQL="UPDATE tbl set BONIFICATO="&BONIFICATO&" WHERE id="&cod
    Grazie mille, in effetti eliminando gli apici ed inserendo il flag nel campo la query non dà più errore ed il record viene modificato...

    adesso però quando richiamo il record che ho modificato il campo si/no è sempre vuoto perchè è stato previsto così:
    codice:
    <input type="checkbox" name="BONIFICATO" value="ON">
    voglio dire che non riesco a far funzionare l'operazione'al contrario' cioè passare da un checkbox con flag ad un checkbox senza flag... :master:

    errore:

    Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

    [Microsoft][Driver ODBC Microsoft Access] Errore di sintassi nell'istruzione UPDATE.

  4. #4
    Utente bannato
    Registrato dal
    Oct 2003
    Messaggi
    372
    <input type="checkbox" name="BONIFICATO" value="1">

    poi nella query di update scrivi

    SQL="UPDATE tbl set BONIFICATO="&cBool(BONIFICATO)&" WHERE id="&cod

  5. #5
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    Originariamente inviato da burruchaga
    <input type="checkbox" name="BONIFICATO" value="1">

    poi nella query di update scrivi

    SQL="UPDATE tbl set BONIFICATO="&cBool(BONIFICATO)&" WHERE id="&cod
    grazie, ma restituisce:

    Microsoft OLE DB Provider for ODBC Drivers error '80040e10'

    [Microsoft][Driver ODBC Microsoft Access] Parametri insufficienti. Previsto 1.

    codice:
    <input type="checkbox" name="BONIFICATO" value="1">
    SQL="UPDATE tbl set BONIFICATO="&cBool(BONIFICATO)&" WHERE id="&cod

  6. #6
    Se ho capito bene devi leggere il campo Si/No dal db e nella checkbox devi fare un controllo sul valore :

    codice:
    <input type="checkbox" name="BONIFICATO" <%if rs("BONIFICATO") = true then 
    response.write "value='OFF' checked"
    else
    response.write "value='ON'"
    end if
    %>>

  7. #7
    Utente bannato
    Registrato dal
    Oct 2003
    Messaggi
    372
    sono corretti i nomi dei campi nella query?

    prova a scrivere

    SQL="UPDATE tbl set BONIFICATO="&cBool(BONIFICATO)&" WHERE id="&cod
    response.write(sql)
    response.end()

    e posta il risultato che stampa

  8. #8
    Utente bannato
    Registrato dal
    Oct 2003
    Messaggi
    372
    Originariamente inviato da Daniele25
    Se ho capito bene devi leggere il campo Si/No dal db e nella checkbox devi fare un controllo sul valore :

    codice:
    <input type="checkbox" name="BONIFICATO" <%if rs("BONIFICATO") = true then 
    response.write "value='OFF' checked"
    else
    response.write "value='ON'"
    end if
    %>>

    al massimo

    <input type="checkbox" value="true" name="BONIFICATO" <%if rs("BONIFICATO") = true then
    response.write "checked"
    end if
    %>>

  9. #9
    codice:
    BONIFICATO = request.form("BONIFICATO")
    if BONIFICATO = "ON" then 
    flag = true
    else
    flag = false
    end if
    
    
    SQL="UPDATE tbl set BONIFICATO = "&flag&" WHERE id="&cod

  10. #10
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    Originariamente inviato da burruchaga
    sono corretti i nomi dei campi nella query?

    prova a scrivere

    SQL="UPDATE tbl set BONIFICATO="&cBool(BONIFICATO)&" WHERE id="&cod
    response.write(sql)
    response.end()

    e posta il risultato che stampa
    Grazie ad entrambi; per Daniele25 il controllo funziona.

    Per Burruchaga:

    quando metto il flag restituisce:
    codice:
    Errore di run-time di Microsoft VBScript error '800a000d' 
    Tipo non corrispondente: 'CBool'
    quanto tolgo il flag:
    codice:
    UPDATE tbl set BONIFICATO=Falso WHERE id=1

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.