Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal, estou tendo um probleminha nesse scripit, talvez seja besteira para quem entende. A situação é o seguinte tenho 4 arquivos: conexão.asp, enquete.asp, send_enquete.asp e resultado.asp. O que deveria acontecer, o usuário entra na pág. enquete.asp, faz a sua escolha e é direcionada para a pág send_enquete, que esta direciona o usuário para a pág. resultado.asp. O problema é que a pág sen_enquete.asp não direciona, quando o usuário confirma o voto dá o seguinte erro Microsoft JET Database Engine error '80004005' Operation must use an updateable query. /enquete/send_enquete.asp, line 14 ( A linha 14 da pág send_enquete.asp é conexao.execute(sql) Estou enviando os códigos das páginas, para que possam tenter resolver o problema, após resolvido quem quiser posta aqui que eu mando todo o arquivo Conexao.asp <% '------------------------------------------------------------------------------------------ ' Este ASP cria a conexão com o banco de dados sem usar DSN '------------------------------------------------------------------------------------------ ' Construo o caminho do HD do servidor que contem o banco de dados para poder fazer uma conexao ao banco de dados sem DNS caminho=left(Server.mappath(Request.ServerVariables("PATH_INFO")),InstrRev(Server.mappath(Request.ServerVariables("PATH_INFO")),"\"))' Crio o objeto de conexao ADO Set conexao = Server.CreateObject("ADODB.Connection") conexao.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0. Data Source="&caminho&"db\enquete.mdb" ' Abro a conexão conexao.open %> enquete.asp <!--Inclusão da string de conexao ao banco de dados --> (<!--#include file="conn/conexao.asp"--> <% ' Seleciono todas as perguntas por ordem decrescente de data
sql="SELECT * FROM enquete_pergunta ORDER BY data DESC" set rs_enquete_pergunta=conexao.execute(sql) ' Seleciono todas as respostas da pergunta de data mais recente sql="SELECT * FROM enquete_respostas WHERE ID_enquete="&rs_enquete_pergunta(0)&" ORDER BY id_resposta " set rs_enquete_respostas=conexao.execute(sql) %> <BODY BGCOLOR="#FFFFFF"> <table width="300" border="0" class=enquete> <tr> <% ' Coluna que contem um link para poder ver os resultados desta enquete sem votar %> <td align=center bgcolor="#009999" class=nav><a href="resultados.asp?id=<%=rs_enquete_pergunta(0)%>" class=nav><font color="#FFFFFF">ENQUETE</font></a></td> </tr> <tr> <td> <% ' Formulário que vai enviar o ID da resposta para adicionar mais um hit %> <form name="enquete" method="post" action="send_enquete.asp"> <% ' Coluna que contem o texto da pergunta %> <%=rs_enquete_pergunta(1)%><br> <% ' Enquanto houver respostas para esta pergunta.... %> <%do while not rs_enquete_respostas.eof%> <% ' Cria um conjunto de radio buttons com o valor do ID da resposta e o texto da resposta %> <input selected type="radio" name="resposta" value= "<%=rs_enquete_respostas(0)%>"><%=rs_enquete_respostas(2)%> <%rs_enquete_respostas.movenext%> <%loop%> </form> </td> </tr> <tr> <% ' Coluna que contem o butão que efetua o envio do formulário para o ASP que adiciona hits ás respostas%> <td><input type="submit" name="Submit" value=" Enviar " OnClick="document.enquete.submit()" class="formu"></td> </tr> </table> </BODY> Send_enquete.asp <!--#include file="conn/conexao.asp"--> <% '------------------------------------------------------------------------------------------ ' Este ASP adiciona um hit á resposta da enquete '------------------------------------------------------------------------------------------ ' Obtenho o ID da resposta a que tenho de adicionar +1 id_resposta=request.form("resposta") ' Uso esse ID para saber quantos hits essa resposta já tem sql="SELECT ID_enquete, hits FROM enquete_respostas WHERE ID_resposta="&id_resposta set resposta=conexao.execute (sql) *' Atualizo o banco de dados com o valor atual de hits + 1* sql="UPDATE enquete_respostas set hits="&resposta("hits")+1&" WHERE id_resposta="&id_resposta conexao.execute(sql) ' Redireciono o browser do usuário para a página que exibe os resultados das enquetes response.redirect "resultados.asp?id="&resposta(0) %> resultado.asp <!--#include file="conn/conexao.asp"--> ' Obtenho o ID da pergunta da qual vou exibir os resultados id=request.querystring("id") ' Se o ID estiver vazio então exibe a pergunta de data mais recente if isempty(id) then sqlend=" ORDER BY data" else ' Senão exibe a pergunta do ID dado sqlend=" WHERE ID_enquete="& id end if ' Transformo esse ID num valor númerico valor=cint(id) ' Selecciono todas a pergunta do ID sql="SELECT * FROM enquete_pergunta "& sqlend set enquete_pergunta=conexao.execute(sql) %> <% ' Se não existir pergunta do ID exibe mensagem de erro if enquete_pergunta.eof then%> <tr> <td colspan=3 class=nav align=center>Pergunta inexistente</td> </tr> <%'Senão seleciona e exibe respostas else ' Selecciono todas as respostas dessa pergunta sql="SELECT FROM enquete_respostas WHERE ID_enquete="& enquete_pergunta("ID_enquete") &" ORDER BY id_resposta "set enquete_respostas=conexao.execute(sql) ' Selecciono todas as perguntas ordenadas por data crescente sql="SELECT FROM enquete_pergunta ORDER BY data " set perguntas=conexao.execute(sql) %> <tr bgcolor="#3366CC"> <% ' Linha com o texto da pergunta do ID %> <td colspan=3 align=center class=nav><%=enquete_pergunta(1)%></td> </tr> <% ' Se não tiver respostas exibe a mensagem seguinte %> <%if enquete_respostas.eof then%> <tr> <td colspan=3 class=enquete>Nenhumas respostas existentes</td> </tr> <% ' Se tiver respostas exibe-as %> <%else%> <%total=0%> <% ' Enquanto as respostas não chegarem ao fim.... %> <%do while not enquete_respostas.eof ' Calculo o valor total dos Hits total=total+enquete_respostas("hits")%> <tr> <% ' Coluna com o texto da resposta %> <td width="20%" nowrap class=enquete><%=enquete_respostas(2)%> </td> <% ' Coluna com as imagens que compoem o grafico de barra desta resposta %> <td width="78%" class=enquete> <% ' Imagem do inicio da barra %><img src="imgs/barraopen.gif"> <% ' Cilco for que colona o número de hits da resposta n, sendo n=5, para dar comprimento á bala, dependendo da grossura do gif, poderá ter mais ou menos valor o n ' Imagem do meio da barra n=1 for x=0 to enquete_respostas("hits")n%> <img src="imgs/barramidle.gif"> <%next ' Imagem do Fim da barra %> <img src="imgs/barraclose.gif"></td> <% ' Valor real dos hits dessa resposta %> <td width="2%" nowrap class=enquete><%=enquete_respostas("hits")%> </td> </tr> <% ' Passo á resposta seguinte enquete_respostas.movenext%> <%loop%> <% ' Linha em que exibo o valor sumatório dos hits de todas as respostas %> <tr> <td width="20%" nowrap class=enquete><font color="#009999">Total</font></td> <% ' Coluna que exibe o grafico da barra, mesmo mecanismo das respostas descrito nas linhas anteriores %> <td width="78%" class=enquete><img src="imgs/barraopen.gif"><%for x=0 to Total*n%> <img src="imgs/barramidle.gif"><%next%> <img src="imgs/barraclose.gif"></td> <td width="2%" nowrap class=enquete><%=total%></td> </tr> <%end if%> </table> <% ' Tabela que vai exibir outras enquetes que não a que estiver a ser exibida %> <table width="100%" align=center class=nav> <tr> <td colspan=2 align=center class=nav>Resultados de Enquetes anteriores</td> </tr> <tr class=grey1> <td align=center width="29%">Data</td><td width="100%" align=center>Pergunta</td> </tr> <% ' Enquanto não chegar ao fim das perguntas.... %> <%do while not perguntas.eof%> <% ' Se o ID da pergunta for diferente da pergunta atual, então essa pergunta vai aparecer na lista %> <%if cint(perguntas("id_enquete"))<>cint(enquete_pergunta("ID_enquete")) then%> <tr class=grey2> <% ' Coluna com o texto da data com link para exibir as respostas dessa pergunta %> <td align=center><a href="resultados.asp?id=<%=perguntas("id_enquete")%>" class=enquete><%=perguntas("data")%></a></td> <% ' Coluna com o texto da pergunta com link para exibir as respostas dessa pergunta %> <td align=center><a href="resultados.asp?id=<%=perguntas("id_enquete")%>" class=enquete><%=perguntas("pergunta")%></a> </td> </tr> <%end if%> <% ' Passo á pergunta seguinte %> <%perguntas.movenext%> <%loop%> <%end if%> </table>:lol: Após resolvido me peçam que eu mando a enquete completinha. Obrigado a todos.Carregando comentários...