Ir para conteúdo

POWERED BY:

Arquivado

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

Arthur Webdesigner

Edição de banco de dados

Recommended Posts

Olá amigos, estou com um probleminha no meu script de edição de banco de dados.Tenho dois arquivos, um do form, e outro da atualização, vejam:editar_noticias.asp

<%Option Explicit%><!--#include file="conexao_editar.asp"--><%Dim Conexao, strSQL, rsNoticias, idid = Request.QueryString("id")Session("id_cliente") = idCall abre_conexaostrSQL = "Select * From noticias Where codigo =" & idset rsNoticias = Conexao.Execute(strSQL)%>
+ o formulário, que não preciso por aqui.noticia_editada.asp
<%Option Explicit%><!--#include file="conexao_editar.asp"--><%Dim Conexao, strSQL, rsNoticiasDim nomenoticiacompleto, nomenoticia, autor, data, datacompleta, noticiacompletanomenoticiacompleto=Request.Form("nomenoticiacompleto")nomenoticia=Request.Form("nomenoticia")autor=Request.Form("autor")data=Request.Form("data")datacompleta=Request.Form("datacompleta")noticiacompleta=Request.Form("noticiacompleta")Call abre_conexaostrSQL = "Update noticias set "strSQL = strSQL & "nomenoticiacompleto = '" & nomenoticiacompleto & "', "strSQL = strSQL & "nomenoticia = '" & nomenoticia & "', "strSQL = strSQL & "autor = '" & autor & "', "strSQL = strSQL & "data = '" & data & "' "strSQL = strSQL & "datacompleta = '" & datacompleta & "' "strSQL = strSQL & "noticiacompleta = '" & noticiacompleta & "' "strSQL = strSQL & "Where codigo = " & Session("id_cliente")Set rsNoticias = Conexao.Execute(strSQL)Call fecha_conexaoSet rsNoticias = NothingResponse.Write 	"<font size=2><center><b>Parabéns, a notícia foi atualizada com sucesso!!!</b></center></font>"%>
Porém quando atualizo ele não funciona, acredito que seja porque no conteúdo das notícias existem códigos HTML com aspas, e isso dá erro no script. O erro é este:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14' [Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression ''07/08/2006' datacompleta = '7 de agosto de 2006' noticiacompleta = '<DIV dir=ltr align=left><TT><TT><FONT face="Verdana, Arial, Helvetica, sans-serif" color=#0000ff>As estratégias da indústria farmacêutica para multiplicar lucros <BR>espalhando o medo e tra'. /noticia_editada.asp, line 29

Existe algo que possa fazer para que ele não identifique as aspas como fazendo parte do script?Muito obrigado pela atenção, agradeço a ajuda. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

achei um probleminha no sql, faltavam as virgulas entre os valores data e datacompleta...

 

 

strSQL = "Update noticias set "strSQL = strSQL & "nomenoticiacompleto = '" & nomenoticiacompleto & "', "strSQL = strSQL & "nomenoticia = '" & nomenoticia & "', "strSQL = strSQL & "autor = '" & autor & "', "strSQL = strSQL & "data = '" & data & "', "strSQL = strSQL & "datacompleta = '" & datacompleta & "', "strSQL = strSQL & "noticiacompleta = '" & noticiacompleta & "' "strSQL = strSQL & "Where codigo = " & Session("id_cliente")

 

 

mas tem um detalhe, se o valor data estiver como formato data no seu banco de dados você deve colocar a linha sssim

 

strSQL = "Update noticias set "strSQL = strSQL & "nomenoticiacompleto = '" & nomenoticiacompleto & "', "strSQL = strSQL & "nomenoticia = '" & nomenoticia & "', "strSQL = strSQL & "autor = '" & autor & "', "strSQL = strSQL & "data = #" & data & "#, "strSQL = strSQL & "datacompleta = '" & datacompleta & "', "strSQL = strSQL & "noticiacompleta = '" & noticiacompleta & "' "strSQL = strSQL & "Where codigo = " & Session("id_cliente")

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para resolver problemas com aspas .. eh soh você dar um replace nelas ..replace(texto,"'","''")isso transforma 1 aspa em 2 aspas seguidas .. e isso nao gera erros no scriptCuidado com esse lance de aspas simples.. se for mal feito .. um login permite SQL INJECTION com elas Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

achei um probleminha no sql, faltavam as virgulas entre os valores data e datacompleta...

strSQL = "Update noticias set "strSQL = strSQL & "nomenoticiacompleto = '" & nomenoticiacompleto & "', "strSQL = strSQL & "nomenoticia = '" & nomenoticia & "', "strSQL = strSQL & "autor = '" & autor & "', "strSQL = strSQL & "data = '" & data & "', "strSQL = strSQL & "datacompleta = '" & datacompleta & "', "strSQL = strSQL & "noticiacompleta = '" & noticiacompleta & "' "strSQL = strSQL & "Where codigo = " & Session("id_cliente")
mas tem um detalhe, se o valor data estiver como formato data no seu banco de dados você deve colocar a linha sssim
strSQL = "Update noticias set "strSQL = strSQL & "nomenoticiacompleto = '" & nomenoticiacompleto & "', "strSQL = strSQL & "nomenoticia = '" & nomenoticia & "', "strSQL = strSQL & "autor = '" & autor & "', "strSQL = strSQL & "data = #" & data & "#, "strSQL = strSQL & "datacompleta = '" & datacompleta & "', "strSQL = strSQL & "noticiacompleta = '" & noticiacompleta & "' "strSQL = strSQL & "Where codigo = " & Session("id_cliente")
valeu cara, o problema estava nas vírgulas mesmo!muito obrigado

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.