Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Seguinte,vou ser direto.
Fui requisitado para tentar fazer um Control Panel em .asp . Já fiz:
Postar - ok
Listar - ok
Editar - ???
Página de editar:
<%
id = request.form("id")
autor = request.form("autor")
titulo = request.form("titulo")
categoria = request.form("categoria")
noticia = request.form("noticia")
data = request.form("data")
Set banco = Server.CreateObject("ADODB.Connection")
banco.Open "Driver={Microsoft Access Driver (*.mdb)};Dbq=DIRETORIO_DO_DB;Uid=;Pwd=;"
sql = "UPDATE news SET autor ='"& autor &"',titulo ='"& titulo &"',categoria ='"& categoria &"',noticia ='"& noticia &"',data = '"& data &"' WHERE id ="& id &";" // LINHA ERRO
Set rs = banco.Execute(sql)
banco.Close
Set rs = Nothing
Response.write("Editado com sucesso!")
%>
<a href="default.asp">Voltar</a>Primeiro Erro: Script error detected at line 11.
Source line: Set rs = banco.Execute(sql)
Description: [Microsoft][Driver ODBC para Microsoft Access] Erro de sintaxe (operador faltando) na expressão de consulta 'id ='.
-
Ai ele pede para por '"& id &"', quando ponho.
-
Description: [Microsoft][Driver ODBC para Microsoft Access] Tipo de dados imcompatível na expressão de critério.
estou sem opções...
Script error detected at line 10.
Source line: Set rs = banco.Execute(sql)
Description: [Microsoft][Driver ODBC para Microsoft Access] Erro de sintaxe (operador faltando) na expressão de consulta 'id ='.
Valeu mas, quanto a data não há problemas.
1o Da um erro que pede para colocar as ' ', Ao colocar da um erro para tirar ' '
Colocar porque é preciso, tirar pois & id & é um numero.
Alguem apresenta alguma opção á mais?
Já tentou imprimir o valor de id na tela pra ver o que te retorna? As aspas nele realmente não são necessárias.
Imprime a query na tela e cola ela aqui!
[]'z
de onde vem o id?
<%
id = request.form("id")
Set banco = Server.CreateObject("ADODB.Connection")
banco.Open "Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\Arquivos de programas\EasyPHP\www\asp\bd.mdb;Uid=;Pwd=;"
sql = "SELECT * FROM news WHERE id=" & id & ""
Set rs = banco.Execute(sql)
While Not rs.EOF
%>
' dados preenchidos com as informações anteriores
<form name="cadastro" action="newe2.asp" method="post">
<table style="border:1px solid #ccc;">
<tr><th colspan="2">Editar uma Noticia</th></tr>
<tr><td>Autor:</td><td><input type="text" size="20" name="autor" id="autor" value="<%=rs("autor")%>"></td></tr>
<tr><td>Titulo:</td><td><input type="text" size="55" name="titulo" id="titulo" value="<%=rs("titulo")%>"></td></tr>
<tr><td>ID:</td><td><input type="text" size="2" name="id" id="id" value="<%=id%>" DISABLED></td></tr>
<tr><td>DATA:</td><td><input type="text" size="10" name="data" id="data" value="<%=rs("data")%>" DISABLED></td></tr>
<tr><td>Categoria:</td><td><input type="text" size="30" name="categoria" id="categoria" value="<%=rs("categoria")%>">
</td>
</tr>
<tr><td><spand id="ask">Noticia</span></td><td>
<TEXTAREA rows="10" cols="50" name="noticia" id="noticia"><%=rs("noticia")%></TEXTAREA>
</td></tr>
<tr><th colspan="2"><input type="submit" name="enviar" id="enviar" value="Editar">
</th></tr></table>
</form>Os dados mandados para newe2.asp, que está no post.
Interessante a sugestão do william.santos
<%
'id vem de newe.asp que está no post
id = request.form("id")
Response.write("Este é o"& id &" xD")
%>Resultado :
Este é o xD
nada aparece...
como está seu formulário onde você resgata esses dados?
Cara, o problema é teu campo ID. Quando acionada a opção disabled, o campo não passa seu valor para o servidor no submit.
Troca o disabled por readonly que funciona!
Boa sorte!
[]'z
Muito obrigado William!
deu certo!
Solução:
trocar:
DISABLED por READONLY!
Beleza, rapaz!
Tamos aê!
[]'z
O erro está no campo data.
O Access não usa apóstrofe pra entrada de data, e sim o "sharp" (#).
Então, basta trocar a expressão por...
sql = "UPDATE news SET autor ='"& autor &"',titulo ='"& titulo &"',categoria ='"& categoria &"',noticia ='"& noticia &"',data = #"& data &"# WHERE id ="& id &";"
Set rs = banco.Execute(sql)
... e exeutar.
Espero ter ajudado.
[]'z