Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Problema con query

  1. #1

    Problema con query

    Ciao, questa è la mia pagina

    http://www.oratoriocividate.it/sonda.../sondaggio.asp

    Come vedete, quando si vota mi compare questo messaggio


    Microsoft OLE DB Provider for ODBC Drivers error '80004005'

    [Microsoft][ODBC Microsoft Access Driver] Operation must use an updateable query.

    /sondaggio/sondaggio/sondaggio.asp, line 39


    Questo è il pezzo:

    <%
    Dim cn, rs, sql
    dim strCode
    strCode="innovatel"
    Set cn = Server.CreateObject("ADODB.Connection")
    strCn="driver={Microsoft Access Driver (*.mdb)}; "
    strCn=strCn & " DBQ=" & Server.MapPath(path)
    strCn=strCn & ";pwd=" & strCode
    Cn.Open strCn

    if Request.QueryString("action") = "vota" then
    if Session("votato")<>1 then
    Dim index
    index = Request.QueryString("idx")
    sql = "SELECT VOTI FROM Sondaggio WHERE ID=" &index
    Set rs = cn.Execute(sql)
    sql = "UPDATE Sondaggio SET VOTI=" &rs("VOTI")+1& " WHERE ID=" &index
    cn.Execute(sql)
    Session("votato") = 1
    end if
    Response.Redirect("sondaggio.asp")
    end if

    Qual è il problema? GRAZIE!!!!

  2. #2
    hai messo il database in una cartella con i permessi di scrittura/lettura? nella connessione usi una variabile PATH che nello script che ci hai postato non è valorizzata

  3. #3
    Sì, la variabile path è inizializzata prima

    'variabili configurabili dall'utente
    Dim titolo, path
    titolo = "Cosa voterai al referendum?" 'inserire il titolo che si vuole dare al sondaggio
    path = "datab/sondaggio.mdb" 'inserire il percorso completo del DataBase
    'fine variabili configurabili dall'utente
    %>
    <%
    Dim cn, rs, sql
    dim strCode
    strCode="innovatel"
    Set cn = Server.CreateObject("ADODB.Connection")
    strCn="driver={Microsoft Access Driver (*.mdb)}; "
    strCn=strCn & " DBQ=" & Server.MapPath(path)
    strCn=strCn & ";pwd=" & strCode
    Cn.Open strCn

    if Request.QueryString("action") = "vota" then
    if Session("votato")<>1 then
    Dim index
    index = Request.QueryString("idx")
    sql = "SELECT VOTI FROM Sondaggio WHERE ID=" &index
    Set rs = cn.Execute(sql)
    sql = "UPDATE Sondaggio SET VOTI=" &rs("VOTI")+1& " WHERE ID=" &index
    cn.Execute(sql)
    Session("votato") = 1
    end if
    Response.Redirect("sondaggio.asp")
    end if

    sql = "SELECT * FROM Sondaggio"
    Set rs = cn.Execute(sql)
    Dim voti_tot
    voti_tot = 0
    do while not rs.eof
    voti_tot = voti_tot + rs("VOTI")
    rs.MoveNext
    loop
    %>

    Non mi funziona comunque mi da sempre lo stesso errore anche se ho permesso tutto in scrittura!!
    Come posso fare? Grazie

  4. #4
    scusa non avevo letto una cosa...sbagliato msg

  5. #5
    prova al posto di:

    codice:
    sql = "SELECT VOTI FROM Sondaggio WHERE ID=" &index 
    Set rs = cn.Execute(sql) 
    sql = "UPDATE Sondaggio SET VOTI=" &rs("VOTI")+1& " WHERE ID=" &index 
    cn.Execute(sql)
    questo:

    codice:
    sql = "SELECT VOTI FROM Sondaggio WHERE ID=" &index
    set rs=server.createobject("adodb.recordset")
    rs.open sql,cn,3,3
    voti=rs("voti")+1
    rs.update "voti",voti
    rs.close
    set rs=nothing

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 © 2026 vBulletin Solutions, Inc. All rights reserved.