Pessoal estou com um problema na instrunção update
se alguem poder me ajudar fico muito grato.
O código e esse:
<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="bd.asp" -->
<html>
<head>
<title>Altera</title>
</head>
<body>
<%
'ativa tratamento de erros
on error resume next
'atribui os valores do formulario as variaveis
nome=request.form("nome")
desc = request.Form("desc")
codigo = request.Form("cd")
'criando a conexão com o banco
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "DBQ=C:\inetpub\wwwroot\1projeto\bd\Northwind.mdb;Driver={Microsoft Access Driver (*.mdb)};"
'***Lendo o registro para evitar duplicidade***
Executar = "SELECT * FROM Categorias where NomeDaCategoria like '"& (nome) &"' "
Set RecSet = conn.Execute(Executar)%>
<%if NOT RecSet.EOF then%>
<div align="center"><center>
<br>
<br>
<hr>
<table>
<tr>
<td>Os dados que pretende adicionar já existem no Banco de
Dados! Não é possível registros em duplicidade.</td>
</tr>
</table>
<br>
<form>
<input type="button" value="Voltar" name="B1"
onClick="history.back()">
</form>
<%else%>
<%'***Altera o registro na tabela***
SQL = "Update Categorias Set NomeDaCategoria='" & nome & "' where CódigoDaCategoria='" & codigo & "'"
Set RS = Conn.Execute(SQL)
'se houve algum erro, detalha
If err.number>0 then
response.write "Ocorreram os seguintes erros no Script: " & "<P>"
response.write "Erro Número = " & err.number & "<P>"
response.write "Descrição = " & err.description & "<P>"
response.write "Contexto de Ajuda = " & err.helpcontext & "<P>"
response.write "Caminho de Ajuda = " & err.helppath & "<P>"
response.write "Erro Nativo = " & err.nativeerror & "<P>"
response.write "Fonte = " & err.source & "<P>"
response.write "SQLState = " & err.sqlstate & "<P>"
end if
IF conn.errors.count> 0 then
response.write "Ocorreu um erro no Banco de Dados " & "<P>"
response.write SQLstmt & "<P>"
for counter= 0 to conn.errors.count
response.write "Error #" & conn.errors(counter).number & "<P>"
response.write "Error desc. -> " & conn.errors(counter).description & "<P>"
next
else
response.write "<B>Alterações gravadas com sucesso !!!</b>"
response.write "<hr>"
response.write "<br>" & "Os novos dados são : "
response.write "<br>"
response.write "<br>" & "<b>None da Categoria:</b> " & nome
response.write "<br>" & "<b>Descrição:</b> " & desc
end if
rs.close
set rs=nothing
Conn.Close
set conn=nothing
%>
<%end if %>
<p align="center"><a href="busca-categoria.asp" target="conteudo">Listar Novamente.</a><br>
</p>
</body>
</html>
Depois ele retorna esse erro no browser:
Ocorreu um erro no Banco de Dados
Error #-2147217913
Error desc. -> [Microsoft][Driver ODBC para Microsoft Access] Tipo de dados imcompatível na expressão de critério.
Encontrei o erro!
O campo código da categoria é numerico. Na instrunção eu tratei como string, porisso o erro.
a forma correta é:
SQL = "Update Categorias Set NomeDaCategoria='" & nome & "' where CódigoDaCategoria= "& codigo & " "