Ir para conteúdo

Arquivado

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

Kalmfs

Problema com UPDATE

Recommended Posts

Depois de ler muito nas colunas iMasters e tb aqui no Fórum, resolvi colocar pra funcionar um sistema de contagem de cliques nos links. A situação é a seguinte:

A página inicial tem um campo de busca que chama uma página com a relação das empresas cadastradas no BD dependendo do q foi digitado. Até aí td bem.

O código que recebe o parâmetro da busca e mostra os dados:

 

ASP [/tr][tr]<%@LANGUAGE="vb script:window.history.go(-1)" class="unnamed1">««

voltar</a></strong></font></div></td>

</tr>

</table>

<% End If ' end Recordset2.EOF And Recordset2.BOF %>

<% End If ' end Recordset1.EOF And Recordset1.BOF %> <br>

<%

While ((Repeat1__numRows <> 0) AND (NOT Recordset1.EOF))

%>

<% If Not Recordset1.EOF Or Not Recordset1.BOF Then %>

<table width="600" border="0" cellpadding="0" cellspacing="1">

<tr>

<td width="144" height="85" align="center" valign="middle" bgcolor="#002645"><table width="130" height="70" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">

<tr>

<td align="center" valign="middle"><p><strong><a href="redirect.asp?url=<%=(Recordset1.Fields.Item("url").Value)%>" target="_blank"><img src="<%=(Recordset1.Fields.Item("logomarca").Value)%>" border="0"></a></strong></p>

</td>

</tr>

</table></td>

<td width="453" bgcolor="#F5F5F5"><font color="#002645" size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong> <%=(Recordset1.Fields.Item("empresa").Value)%><br>

</strong> <%=(Recordset1.Fields.Item("endereco").Value)%><br>

 <%=(Recordset1.Fields.Item("telefone").Value)%> <br>

 <%=(Recordset1.Fields.Item("email").Value)%> <br>

<a href="<%=(Recordset1.Fields.Item("url").Value)%>" target="_blank"<%=(Recordset1.Fields.Item("website").Value)%></a> </font></td>

</tr>

</table>

<% End If ' end Not Recordset1.EOF Or NOT Recordset1.BOF %>

<%

Repeat1__index=Repeat1__index+1

Repeat1__numRows=Repeat1__numRows-1

Recordset1.MoveNext()

Wend

%>

<font color="#CCCCCC" size="1" face="Verdana, Arial, Helvetica, sans-serif"

</font>

<%

While ((Repeat2__numRows <> 0) AND (NOT Recordset2.EOF))

%>

<table width="600" border="0" cellspacing="1" cellpadding="0">

<tr>

<td width="141" bgcolor="#F5F5F5"> </td>

<td width="456" valign="middle" bgcolor="#FFFFFF"> <font color="#002645" size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong><%=(Recordset2.Fields.Item("empresa").Value)%> - </strong><%=(Recordset2.Fields.Item("endereco").Value)%></font></td>

</tr>

</table>

<%

Repeat2__index=Repeat2__index+1

Repeat2__numRows=Repeat2__numRows-1

Recordset2.MoveNext()

Wend

%>

<%

Recordset1.Close()

Set Recordset1 = Nothing

%>

<%

Recordset2.Close()

Set Recordset2 = Nothing

%>

[/tr]

Notem que a repeat region mostra a logo da empresa. Quando se clica na imagem é direcionado p/ a página redir.asp com um parâmetro de url. O que eu preciso é que a página redir.asp pegue esse param. e conte no BD um clique para aquela empresa. Mas já tentei tudo q li aqui a nada funcionou.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só pra completar, esse é o código que eu utilizei na redir.asp e o erro que está dando:

ASP [/tr][tr]<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>

<!--#include file="Connections/conexao.asp" -->

<%

 

if(Request.QueryString("url") <> "") then contagem__var_url = Request.QueryString("url")

 

%>

<%

 

set contagem = Server.CreateObject("ADODB.Command")

contagem.ActiveConnection = MM_conexao_STRING

contagem.CommandText = "UPDATE empresas SET cliques = cliques + 1 WHERE url = " + Replace(contagem__var_url, "'", "''") + ""

contagem.CommandType = 1

contagem.CommandTimeout = 0

contagem.Prepared = true

contagem.Execute()

 

%>

 

<html>

<head>

<title>Untitled Document</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>

<body>

</body>

</html>

[/tr]

 

Tipo de erro:Microsoft JET Database Engine (0x80040E14)Erro de sintaxe (operador faltando) na expressão de consulta 'url = http://www.terra.com.br'./barra/redirect.asp, line 16
não sei mais como mexer nisso galera, me ajudem. Por mais que eu mexa sempre dá esse erro na linha do "contagem.Execute()" do UPDATE.

 

Abraços!

KaL

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara escreve antes de seu UPDATE o seguinteresponse.write "UPDATE empresas SET cliques = cliques + 1 WHERE url = " + Replace(contagem__var_url, "'", "''") + ""e posta aqui o que escrever na tela

Compartilhar este post


Link para o post
Compartilhar em outros sites

mario, deu essa msg:

Tipo de erro:Erro de compilação do Microsoft VBScript (0x800A0401)Fim da instrução esperado/barra/redirect.asp, line 12, column 38contagem.CommandText = response.write "UPDATE empresas SET cliques = cliques + 1 WHERE url = " + Replace(contagem__var_url, "'", "''") + ""-------------------------------------------^

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao cara dá este response.write antes deste bloco de codigo tipo assimresponse.write "UPDATE empresas SET cliques = cliques + 1 WHERE url = " + Replace(contagem__var_url, "'", "''") + "" set contagem = Server.CreateObject("ADODB.Command")contagem.ActiveConnection = MM_conexao_STRINGcontagem.CommandText = "UPDATE empresas SET cliques = cliques + 1 WHERE url = " + Replace(contagem__var_url, "'", "''") + ""contagem.CommandType = 1contagem.CommandTimeout = 0contagem.Prepared = truecontagem.Execute()

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ahhh, saquei :D Fiz desse modo mas continua dando o mesmo erro de antes: Erro de sintaxe (operador faltando) na expressão de consulta...Realmente não entendo o q está errado.Valeu pela atenção, cara

Compartilhar este post


Link para o post
Compartilhar em outros sites

mais era pra continuar o mesmo erro, eu pedi pra você escrever o que apareceu na tela pois fica mais facil de ver o que ta faltando e te ajudar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tipo de erro:

Microsoft JET Database Engine (0x80040E14)

Erro de sintaxe (operador faltando) na expressão de consulta 'url = http://www.terra.com.br'.

/barra/redirect.asp, line 20

 

Isso q apareceu na tela. Era isso q você queria ver???

Tô ficando maluco já com esse erro toda hora!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

antes nesta linha de erro não apareceu algo como..UPDATE empresas SET cliques = ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não, só apareceu a página de erro mesmo.

Tentei aqui tirar o update e deixar somente esse response.write, aí realmente printou na tela UPDATE empresas SET cliques = cliques + 1 WHERE url = http://www.terra.com.br

Acho q isso mostra que o parâmetro tá chegando certo só não consegue executar o UPDATE por algum motivo.

*lembrando q o "url =" depende do link clicado na página anterior

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao so poe aspas simples na url assim"UPDATE empresas SET cliques = cliques + 1 WHERE url = '" + Replace(contagem__var_url, "'", "''") + "'"se der certo apaga o response.write

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, consegui!!!! Enquanto eu esperava tua resposta eu vi um post de Edgar Belladona com esse problema mesmo. Coloquei aspas simples na condição e deu certo! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Valeu mesmo mario pela força!!! Vou colocar o código como ficou pra servir como exemplo.

Abraço,

KaL

 

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%> <!--#include file="Connections/conexao.asp" --><%if(Request.QueryString("url") <> "") then contagem__var_url = Request.QueryString("url")%><%set contagem = Server.CreateObject("ADODB.Command")contagem.ActiveConnection = MM_conexao_STRINGcontagem.CommandText = "UPDATE empresas  SET cliques = cliques + 1  WHERE url = '" + Replace(contagem__var_url, "'", "''") + "'"contagem.CommandType = 1contagem.CommandTimeout = 0contagem.Prepared = truecontagem.Execute()%><html><head><title>Untitled Document</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head><body></body></html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Compartilhar este post


Link para o post
Compartilhar em outros sites

o, mario era string, o que faltava era as aspas mesmo... nao viu nao??? :D que moderador... hehehehehe http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

sei cara, mas não tava vendo a string SQL porque não tava dando erro de tipos e sim dizendo que faltava parametro, por isso queria saber se tava escrevendo tudo depois que falei pra ele colocar as aspas http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ressucitando esse tópico... Estou usando o sistema de update em outra página e o código tema algumas diferenças:

ASP [/tr][tr]<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>

<!--#include file="Connections/ligacao.asp" -->

<%

if(Request.QueryString ("empresa") <> "") then inserir__var_empresa = Request.QueryString ("empresa")

%>

<%

set inserir = Server.CreateObject("ADODB.Command")

inserir.ActiveConnection = MM_ligacao_STRING

inserir.CommandText = "UPDATE empresas SET cliques = cliques + 1 WHERE empresa = '" + Replace(inserir__var_empresa, "'", "''") + "'"

inserir.CommandType = 1

inserir.CommandTimeout = 0

inserir.Prepared = true

inserir.Execute()

%>

<html>

<head>

<title>Redirecionando...</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>

<body>

<%

If (Request.QueryString ("url") <> "")then Response.Redirect(Request.QueryString("url"))

If (Request.QueryString ("url") = "") then Response.Write("teste")

%>

</body>

</html>

[/tr]

O Update tá funcionando perfeitamente graças à ajuda da galera http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

O que eu preciso agora é o seguinte: ao invés de dar o Response.Write quando o parâmetro url for vazio eu queria simplesmente fechar a página de redirect.

Como posso fazer isso? Já vi pelo fórum que seria chamando javascript mas não entendi como, alguém pode ajudar?

Valeu

Abraços

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.