Jump to content


tokinho

Member Since 24/11/2010
Offline Last Active 09/12/2010, 12:19
-----

Topics I've Started

Funçao Update Em Asp

25/11/2010, 12:15

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 & " "

IPB Skin By Virteq