Ir para conteúdo

POWERED BY:

Arquivado

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

FGC

[Resolvido] Syntax error in UPDATE statement.

Recommended Posts

Wendel ,

 

Agora não deu mais o erro , diz que foi alterado com sucesso porém ..rs..... se modificar o campo CAMPEONATO ele ao inves de ALTERAR esta APAGANDO os dados do campo ....

 

Quer que poste tudo os dados ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Segue a pagina que abre os dados para fazer a modificação :

 

<% Set Conexao = CreateObject("ADODB.CONNECTION")
Set objCon = Server.CreateObject("ADODB.Connection")
objCon.Open "Data Source="&Server.MapPath("Noticias.mdb")&";Provider=Microsoft.Jet.OLEDB.4.0;"

%>
<%

acao 	= Request("acao")
id = Request("id")


if acao = "V" then
	disabilita = " disabled=""disabled"" " 
elseif acao = "A" then
	disabilita = ""
end if

'Dados Alterar
id= Request("id")

if (acao = "A" or acao = "V") then	

	if acao = "A" then
	   acao = "alterar"
	   bt   = "Alterar" 
	else
	   acao = "visualizar"
	   bt   = "Alterar"
	end if

	set rs2 = Server.CreateObject("ADODB.Recordset")
	sql2    = "select * from Jogos where id="&id&""
	set rs2 = objCon.execute(sql2)

'-------------------------------------------------
'	Estes dados podem ser alterados
	Competicao = rs2("Competicao")
	id    = rs2("id")




'--------------------------------------------------
else
	acao = "gravar"
	bt   = "Gravar"
end if

bt = Ucase(bt)

%>
<html>

<head>
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Nova pagina 3</title>
</head>

<body>


<TABLE cellSpacing=0 cellPadding=0 width=488 align=center 
 <TR>
   <TD align=middle valign="top" bgcolor="#FFFFFF" height="97" style="font-family: " width="570">



<TABLE cellSpacing=0 cellPadding=0 width=523 align=center 
background="back_temp.gif" 
 border=0 height="1">
 <tr>
                   <td width="806" bgcolor="#EFEFEF" height="1" style="border-style:none; border-width:medium; " valign="top">
                     <form method="GET" action="alterar_dados_jogos.asp" name="form">
<div align="center">
 <center>
<table border="0" cellpadding="0" width="570" height="36" style="border-collapse: collapse" bordercolor="#111111" cellspacing="0">
 <tr>
   <td width="4742" height="12" style="border-style:none; border-width:medium; font-size: 9px; font-family: Verdana, Arial, Helvetica, sans-serif; " bgcolor="#EFEFEF" bordercolor="#A1C094" colspan="2">
<p align="left">
<b><font face="Arial" style="font-size: 8pt">ID: </font><font face="Arial">
 </font><font face="Arial" color="#FFFFFF"><INPUT id=email5 maxLength=40 name=id <%=disabilita%>
           style="border:1px solid #000000; BACKGROUND-COLOR: #FFFFFF; FONT-SIZE: 8 pt; padding-left:4; padding-right:4; padding-top:1; padding-bottom:1; font-weight:bold" size="9" value="<%=id%>"></font></b></td>
 </tr>
 <tr>
   <td width="4742" height="32" style="border-style:none; border-width:medium; font-size: 9px; font-family: Verdana, Arial, Helvetica, sans-serif; " bgcolor="#EFEFEF" bordercolor="#A1C094" colspan="2">
<p>
<b><font face="Arial" style="font-size: 8pt">Competição:</font></b><span style="font-size: 8pt"><font face="Arial"> <input name="Competicao" type="text" class="inputSelecionado" value="<%=Competicao%>" size="75" maxlength="30"  style="border:1px solid #1D2447; font-size: 8 pt; background-color:#FFFFFF; font-weight:bold; color:#000000"></font></span></td>
 </tr>
 <tr>
   <td width="3472" height="3" style="border-style:none; border-width:medium; font-size: 9px; font-family: Verdana, Arial, Helvetica, sans-serif; " bgcolor="#EFEFEF" bordercolor="#A1C094" colspan="2">
<p align="center">
                   <a href="atualiza_jogos.asp?acao=V&id=<%=id%>">
                   <img border="0" src="ic_alterar.jpg" width="41" height="49"></a></td>
 </tr>
 <tr>
   <td width="3535" height="1" style="border-style:none; border-width:medium; font-size: 9px; font-family: Verdana, Arial, Helvetica, sans-serif; " bgcolor="#EFEFEF" bordercolor="#A1C094" colspan="2">
<font face="Arial">
<b><span style="font-size: 8pt">Clique para Alterar</span></b></font></td>
 </tr>
 <tr>
   <td align="center" width="1386" valign="middle" height="1">
   </td>
   <td align="center" width="1222" valign="middle" height="1">
<p>
   </td>
 </tr>
</table>
 </center>
</div>
<font face="Arial">
<input type="hidden" name="id" value="<%=id%>">
</font>
</form>
</td> 
             </tr>
 </TABLE>
   </TD></TR>
 </TABLE>

</body>

</html>

 

 

E a página que faz o update como que ficou

 

<%




'Atrubuição dos valores as respectivas variáveis
Competicao= Request.QueryString("Competicao")
id = Request.QueryString("id")



Set conObj = Server.CreateObject("ADODB.Connection")
conObj.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("Noticias.mdb") & ";"




sql = "UPDATE Jogos SET Competicao='"&Competicao&"' WHERE id="&id

Response.Write(sql)


Set conObj = conObj.Execute(sql)

On error Resume Next

'Executaa inserção no Banco de Dados 

'Fecha o Objeto de Conexão

conObj.Close


Set conObj = nothing
Response.write "Registro foi alterado com sucesso!"
response.write "<br><br>Você será redirecionado em 5 segundos<br>"
response.write "<meta http-equiv='refresh' content='0; url=ListarJogos.asp'/>"
%>
</b></span></font></p>
<p align="center"> 
</p>
<p> </p>


Compartilhar este post


Link para o post
Compartilhar em outros sites

Isto aqui:

<form method="GET" action="alterar_dados_jogos.asp" name="form">

 

deveria ser assim:

<form method="POST" action="alterar_dados_jogos.asp" name="form">

 

Ai aqui:

Competicao= Request.QueryString("Competicao")
id = Request.QueryString("id")

 

Vira:

Competicao= Request.Form("Competicao")
id = Request.Form("id")

 

Neste ponto:

sql = "UPDATE Jogos SET Competicao='"&Competicao&"' WHERE id="&id

Response.Write(sql)

Set conObj = conObj.Execute(sql)

On error Resume Next

 

Comente o execute e o on error

sql = "UPDATE Jogos SET Competicao='"&Competicao&"' WHERE id="&id

Response.Write sql

'Set conObj = conObj.Execute(sql)

'On error Resume Next

 

Se a query sql estiver correta, retire o response.write e descomente o execute e o on error.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Vinicius,

 

Refiz do modo que citou no exemplo , executei o response write não retornou nenhum erro ... apos isso mandei executar normal o codigo .. retorou ALTERADO COM SUCESSO .. mas simplesmente ao inves de ALTERAR ele apaga os dados do campo COMPETIÇÃO ...

 

Eu ja desisto ..rs...

 

Não tem uma outra forma de fazer isso...

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tem como apagar os dados, pois o comando é diferente.

UPDATE = Atualiza dados no banco de dados

DELETE = Apaga dados no banco de dados.

 

Alem do comando ser diferente, suas sintaxes são diferentes.

 

Ao executar o response.write, é para verificar se os dados estão sendo montados como esperado na clausula, não é para apresentar erro.

A saida deve ser algo do tipo:

 

UPDATE Jogos SET Competicao='volei' WHERE id=1234

 

Se faltar volei ou 1234 nos parametros do exemplo, é porque a variavel correspondente que compõe a query sql está vazia, ou seja, o request.form não está recebendo os valores do formulário.

 

Se for este o caso, é preciso verificar se o nome do item do formulário é o mesmo do request.form por exemplo.

 

Note que request.querystring é para parametros enviados na url do site, por exemplo www.exemplo.com?id=123

o que está após o ? será capturado pelo response.querystring no formato nome/valor então se fizer:

codigo = request.querystring("id")

 

O valor da variavel codigo será o valor de id passado na url que no caso é 123.

 

Se um formulário envia dados para uma pagina asp, e nessa pagina iremos trabalhar com esses dados, então usaremos o request.form.

 

Assim, se no formulário tivermos um campo para o nome do cliente, e ele se chamar nomecli assim:

<input type='text' name='nomecli'>

 

na pagina que receberemos os valores do formulário, teremos algo do tipo:

nome_cliente =  Request.Form("nomecli")

 

Caso escreva errado, com letra faltando ou um l no lugar de um i, por exemplo a variavel estará vazia pois não existe um valor vindo do campo indicado.

 

Provavelmente, fato do script não funcionar é porque o(s) nome(s) do(s) campo(s) no formulário são diferentes dos informados na pagina que processa os dados.

 

Quando não funciona como desejamos, nao apresenta erro, os dados não são inseridos/alterados/apagados como se espera, é preciso calma e rever linha a linha todo o codigo tanto na pagina que processa os dados, como na pagina que envia os dados, para achar a falha.

 

Se mesmo assim não achar o erro, é melhor começar do zero e escrever cuidadosamente cada linha para descobrir onde estava errando ou não repetir os erros já descobertos anteriormente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

verifique os nomes de campos e tabela, veja também o tipo de dados se estão compativeis

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola amigos..

 

Me desculpem a incistencia neste tópico mas preciso entender o que tem de errado neste meu código.....

 

Bom criei uma nova tabela com apenas 2 campos ID ( AUTONUMERACAO) , LOCAL( TEXTO), refiz o formulário que exibe os dados e a pagina que faz o update e na minha pagina de updte dei um response.write no sql e ele retornou o seguinte:

 

UPDATE Jogos SET Lugar='' WHERE id=1 

 

Esta passano vazio o campo LUGAR ....

Compartilhar este post


Link para o post
Compartilhar em outros sites

verifique como esta ficando sua string SQL com o response.write na SQL......

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá ,

 

Refiz novamente o Formulário e a pagina do UPDATE , fiz o teste com o RESPONSE.WRITE na SQL e desta vez ela retornou os valores tanto do ID como do Local corretamente como pode ver abaixo :

 

UPDATE teste SET local=SANTOS WHERE id =1

 

Porém ele não esta gravando no banco esta modificação ... os codigos ficaram assim :

 

Formulario que exibe os dados

 

<% Set Conexao = CreateObject("ADODB.CONNECTION")
Set objCon = Server.CreateObject("ADODB.Connection")
objCon.Open "Data Source="&Server.MapPath("Noticias.mdb")&";Provider=Microsoft.Jet.OLEDB.4.0;"

%>

<%id = request.querystring("id")

Set rs = objCon.execute("SELECT * FROM teste WHERE id =" & id)

%>

<form name="form" method="post" action="grava.asp">

<input name="nome_campo" type="text" value="<%=rs("local")%>" size="20">

<input type="hidden" name="id" value="<%=rs("id")%>"> 
         <input type="submit" name="Submit" value="Alterar">

     </form>

 

Página do Update

 

<%
Set conObj = Server.CreateObject("ADODB.Connection")
conObj.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("Noticias.mdb") & ";"
%>

<%local = Request.Form("nome_campo") 



id = Request.Form("id")

strQuery = "UPDATE teste SET  local="&local&"  WHERE id ="&id

Response.Write(strQuery ) 

On error Resume Next
Set ObjRs = objCon.execute.Execute(strQuery)
On error Resume Next

'Executaa inserção no Banco de Dados 

'Fecha o Objeto de Conexão

conObj.Close


Set conObj = nothing

 

 

Valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele esta gerando o mesmo erro ainda ?

 

e verifique se esta com as permissões admin istrativas para gravar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se não esta gravando, de duas uma... ou não esta com permissão no bd, ou o id selecionado para o update não existe. Gera algum erro quando isso acontece?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então vou verificar as permissões , sobre erros não esta retornando erro nenhum ok.. como disse no RESPONSE.WRITE na SQL está retornando os valores normais sem erros .ok...

 

Vou ver as permissões e retorno.

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola amigos ,

 

Eu denovo..rs ...... bom foram aplicadas as permissões no Banco ... mas ainda n está fazendo update , não retorna erro nenhum... , abaixo o link para verem que esta buscando o Id corretamente...

 

http://www.queirozsports.com/jogos/dados.asp

 

Alguem tem outra sugestão do que pode ser

 

Obrigdao

Compartilhar este post


Link para o post
Compartilhar em outros sites

o tipo dos campos estão corretos ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente assim:

strQuery = "UPDATE teste SET  local='"&local&"'  WHERE id ="&id&""

 

assumindo id como campo do tipo numérico

Compartilhar este post


Link para o post
Compartilhar em outros sites

xanburzum,

 

Mesma coisa .. na retorna erro nenhum .. no RESPONSE.WRITE busca os valores mas não inclui no campo....

 

Meu ultimo recurso os arquivos que estou usando .. www.queirozsports.com/jogos.rar

 

Bom mais uma vez obrigado pela dica..

 

Abcs

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.