Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

lucasmoraes

erro com update

Recommended Posts

ola amigos gostaria da ajuda de voces para o seguinte

estou tentando fazer minha area administrativa.... e nao consigo fazer a pagina que altera o nome das categorias

eu fiz a parte que exibe... a parte que cadastra novas categorias... mas nao consegui fazer a parte que exclui as categorias e nem a que atualiza... bom vou postar meu codigo pra vcs verem oque pode estar errado...

 

aqui e a msg de erro do update...

UPDATE categorias SET nomecategoria='dvds' WHERE idcategoria=10

Microsoft VBScript runtime error '800a01a8'

 

Object required: ''

 

/novaera/adm/editar_categoria_fun.asp, line 5

 

 

pagina que exibe e cadastra as categorias funcionando...

 <form action="categorias.asp?str=adicionar" method="post" onsubmit="return verifica();">
	<table>
	<tr><td align="right">Nome<img src="images/ast.gif" /></td><td><input type="text" name="nome" obrig = "sim" nome="Nome" class="caixa" /></td></tr>

       <tr><td colspan="2" align="center"><input type="submit" value="Gravar" /></td></tr>
       <tr><td colspan="2" >(<img src="images/ast.gif" />) Campos obrigatórios</td></tr>
	</table>
   </form>
   </div>

   <div id="usuarios">
   Para alterações, dê um clique-duplo nos campos. 
   	<table width="98%" id = "tabusu">
   	<thead>
   		<tr>
               <td>Nome categoria</td>
               <td>identificador</td>
           </tr>
   	</thead>

       <tbody>
       <%
	Set conn = Server.CreateObject("ADODB.Connection")
	conn.CursorLocation = 3
	conn.Open novaeradsn
	Set rscat = Server.CreateObject("ADODB.Recordset")
	sql = "select * from categorias ORDER BY nomecategoria"
	rscat.open sql,conn
	while not rscat.eof
	i = rscat("idcategoria")
	nome = rscat("nomecategoria")
	%>
       		<tr>
               <td>
               <a href="editar_categorias.asp?str=modificar&idcat=<%=rscat("idcategoria")%>" style="cursor:pointer;"><span class="texto">  <%= rscat("nomecategoria")%></span></a>
               </td>
               <td  align="center" width="10%">
               <a href="editar_categorias.asp?str=modificar&idcat=<%=rscat("idcategoria")%>" style="cursor:pointer;"><span class="texto">  <%= rscat("idcategoria")%></span></a>
               </td>

           <td align="center" width="8%"><a href="#" onclick="excluir('<%=rscat("idcategoria")%>', 'categorias.asp?str=excluir&id=')" style="cursor:pointer;"><img src="images/down.gif" title="Deletar" /></a></td>
       </tr>          

       <%
	rscat.MoveNext
	wend
	%>
       <tbody>
   </table>
   </div> 

</div>

<!--#include file="rodape.asp"-->


</body>
</html>


<%
if Request.QueryString("str") = "adicionar" then

Set rsChecar = Server.CreateObject("ADODB.Recordset")
sqlChecar = "select * from categorias where nomecategoria = '" & Request.Form("nome")& "' "
rsChecar.Open sqlChecar,conn' = conn.Execute(sqlChecar)

	If not rsChecar.eof then
			%>
			 <script>
				alert('Já existe uma Categoria com este nome.');
			 </script>
			<%
			Response.End()
	Else

			sql = "INSERT INTO categorias (nomecategoria) VALUES ('"&Request.Form("nome")&"')"
			conn.Execute(sql)

			Response.Redirect("categorias.asp")

	End if


end if

if Request.QueryString("str") = "excluir" then

sqldel = "delete from categorias where idcategoria = " & Request.QueryString("idcategoria")
conn.Execute(sqldel)

sqlDelSub = "delete from subcategorias where idcategoria = " & Request.QueryString("idcategoria")
conn.Execute(sqlDelSub)

	Response.Redirect("categorias.asp")

end if
%>

 

quando o cliente clica no link que esta exibindo as categorias ele abre uma pag pra editar que e esta do cod abaixo

 <div id="cadastro">
   <%

Set conn = Server.CreateObject("ADODB.Connection")
conn.CursorLocation = 3
conn.Open novaeradsn
Set rsmodf = Server.CreateObject("ADODB.Recordset")
sql = "select * from categorias where idcategoria="&idcategoria&" ORDER BY nomecategoria"
rsmodf.open sql,conn
%>
   <form action="editar_categoria_fun.asp?str=modificarok&idcategoria=<%= rsmodf("idcategoria")%>" method="post">
	<table>
	<tr><td align="right" height="30px">Nome<img src="images/ast.gif" /></td><td><input name="nomeedit" type="text" id="nomeedit" value="<%= rsmodf("nomecategoria")%>" nome="Nome" /></td></tr>

       <tr><td colspan="2" align="center"><input type="submit" value="Gravar" /></td></tr>
       <tr><td colspan="2" >(<img src="images/ast.gif" />) Campos obrigatórios</td></tr>
	</table>
   </form>
<%	
'nome = request.Form("nomeedit")
'idcategoria = request.QueryString("idcat")
'if Request.QueryString("str") = "modificarok" then
	'SQL = "UPDATE categorias SET nomecategoria='" & nome & "' WHERE idcategoria="&rsmodf("idcategoria")
 		'Set rsmodfk = conn.Execute(SQL) 
'	SQL = "UPDATE categorias SET nomecategoria="&nome&" WHERE idcategoria=10"'&idcategoria
'response.Write(SQL)
'Set Rs = conn.Execute(Sql)
%>
<%
'Response.Redirect "categorias.asp"
'end if
%>
   </div>

 

agora vem a pagina que esta sendo impressa no erro sql...

editar_categoria_fun.asp

<%
nome = request.Form("nomeedit")
SQL = "UPDATE categorias SET nomecategoria='"&nome&"' WHERE idcategoria="&request.QueryString("idcategoria")
response.Write(SQL)
Set Rs = conn.Execute(Sql)
%>

 

nao sei oque esta acontecendo porque nao atualiza de forma nenhuma....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui:

 

sqldel = "delete from categorias where idcategoria = " & Request.QueryString("idcategoria") 
       conn.Execute(sqldel) 

 

Está errado, falta um coringa (*) ou explicitar qual ou quais campos serão apagados:

 

sqldel = "delete * from categorias where idcategoria = " & Request.QueryString("idcategoria") 
       conn.Execute(sqldel) 
ou

sqldel = "delete nome from categorias where idcategoria = " & Request.QueryString("idcategoria") 
       conn.Execute(sqldel) 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso geralmente é porque você já tentou fechar ou definir nothing a um objeto que não foi definido.

 

olha este exemplo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui:

 

sqldel = "delete from categorias where idcategoria = " & Request.QueryString("idcategoria") 
       conn.Execute(sqldel) 

 

Está errado, falta um coringa (*) ou explicitar qual ou quais campos serão apagados:

 

sqldel = "delete * from categorias where idcategoria = " & Request.QueryString("idcategoria") 
       conn.Execute(sqldel) 
ou

sqldel = "delete nome from categorias where idcategoria = " & Request.QueryString("idcategoria") 
       conn.Execute(sqldel) 

 

amigo a parte de excluir esta ok ja vlw

mas o update nao funciona nem a pal rsrs

olha o erro que ele manda

 

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

 

[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.

 

/novaera/adm/editar_categoria_fun.asp, line 9

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dá um response.write na sql do update e veja se os valores estão sendo passados corretamente

bom o codigo sql é este

<!--#include file="caminho.asp"-->
<%
Set conn = Server.CreateObject("ADODB.Connection")
conn.CursorLocation = 3
conn.Open novaeradsn
nome = request.Form("nomeedit")
SQL = "UPDATE categorias SET nomecategoria="&nome&" WHERE idcategoria="&request.QueryString("idcategoria")&""
response.Write(SQL)
Set Rs = conn.Execute(Sql)
%>

quando eu dou um response.write ele retorna

UPDATE categorias SET nomecategoria=gfgsdfh WHERE idcategoria=2

 

e o erro que ele envia é

 

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

 

[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

 

/novaera/adm/editar_categoria_fun.asp, line 9

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, os campos estão certinhos, tabela?

 

Bom, o texto tente assim:

 

<%

Set conn = Server.CreateObject("ADODB.Connection")

conn.CursorLocation = 3

conn.Open novaeradsn

nome = request.Form("nomeedit")

SQL = "update categorias set nomecategoria = '"&nome&"' where idcategoria = "&request.QueryString("idcategoria")&""

response.Write(SQL)

Set Rs = conn.Execute(Sql)

%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

os nomes dos campos estão corretos?

 

Se o campo nomecategoria for texto faça como Working System mostrou

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.