visual_online Postado Março 24, 2007 Denunciar Share Postado Março 24, 2007 Gente é o seguinte:Estou com um pequeno problema .... quando insiro um texto no informativo, com aspas simples , ocorre a seguinte mensagem:Microsoft OLE DB Provider for ODBC Drivers error '80040e14'[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression '''gdfg dfg '''./email/bloggus/admin/publicando.asp, line 65 esta é a parte no codigo que insere no bd: Dim chamada, txt, data, nome, hora, SQL chamada = Request.Form("titulo") txt = Request.Form("journalItem") data = Request.form("data") nome = Request.form("nome") hora = Request.form("hora") If chamada = "" or txt = "" Then Response.redirect "publicando.asp" SQL = "Insert Into posts (titpost, post, datapost, autorpost, horapost) Values('"&chamada&"', '"&txt&"','"&data&"','"&nome&"','"&hora&"')" ConnDB.Execute(SQL) Response.Redirect "publicando.asp?erro=1"já quando coloco alguma "aspa" normal, tudo ok...Então, vamos lá... preciso da ajuda de alguém ai....Té mais Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Março 25, 2007 Denunciar Share Postado Março 25, 2007 Dobre a aspa simples, ou seja, repita ela duas vezes. Isso ocorre porque a aspa simples é o delimitador de strings. Ou seja, "Sant'anna" deverá ser "Sant''anna" para ser inserido. Note que '' (duas aspas simples) não é o mesmo que " (uma aspa dupla). Para tanto você pode usar a função Replace() para substituir todas as ocorrências de aspas simples por duas aspas simples:Dim chamada, txt, data, nome, hora, SQL chamada = Request.Form("titulo") txt = Replace(Request.Form("journalItem"), "'", "''") data = Request.form("data") nome = Request.form("nome") hora = Request.form("hora") If chamada = "" or txt = "" Then Response.redirect "publicando.asp" SQL = "INSERT INTO posts (titpost, post, datapost, autorpost, horapost) VALUES ('" & chamada & "', '" & txt & "','" & data & "','" & nome & "','" & hora & "')" ConnDB.Execute(SQL) Response.Redirect "publicando.asp?erro=1"Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest visual Postado Março 25, 2007 Denunciar Share Postado Março 25, 2007 mas quando os dados do banco forem exibidos, eles virão com o aspas simples dobrado??? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Março 25, 2007 Denunciar Share Postado Março 25, 2007 mas quando os dados do banco forem exibidos, eles virão com o aspas simples dobrado???Vão ser mostrados com a aspa simples. O único problema da aspa simples em uma instrução SQL é que ela também é utilizada para delimitar strings. Imagine o seguinte:INSERT INTO tabela (Nome) VALUES ('Carlos Sant'Anna'); Note que a string parece terminar na primeira aspa que fecha (depois do "t"), só que queremos que ela termine depois do último "a". No caso, dobrar a aspa simples é a maneira de se dizer que a string não termina ali e sim que o caracter de aspa simples é que é o que queremos. Veja a diferença: INSERT INTO tabela (Nome) VALUES ('Carlos Sant''Anna');Sacou? ;)Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 visual_online Postado Março 25, 2007 Autor Denunciar Share Postado Março 25, 2007 titulo = Replace(request.form("name1"), "'", "''")entry1 = Replace(Request.Form("Entry1"), "'", "''") SQL = "Insert Into noticias (data, titulo, materia) Values('"&data&"', '"&titulo&"','"&entry1&"')" olha, é o seuguinte: até deu certo sim, mas so que tive que tirar uma linha abaixo de cada requisição de form que tava la acima, num sei porque, talvez tava dando algum conflito e a quebra de linha foi embora junto ... e agora? tava assim antes:titulo = Replace(request.form("name1"), "'", "''")titulo = Replace(Request.Form("name1"), Chr(13), "<br>")entry1 = Replace(Request.Form("Entry1"), "'", "''")entry1 = Replace(Request.Form("Entry1"), Chr(13), "<br>") SQL = "Insert Into noticias (data, titulo, materia) Values('"&data&"', '"&titulo&"','"&entry1&"')" Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 .Andreia. Postado Março 25, 2007 Denunciar Share Postado Março 25, 2007 Voce está atribuindo uma formatação numa linha, e embaixo outra... Como você está sempre pegando a variavel do request, isso não atualiza o valor, o que vai valer é a ultima atribuição. O correto seria:titulo = Replace(request.form("name1"), "'", "''") titulo = Replace(titulo, Chr(13), "<br>") Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
visual_online
Gente é o seguinte:
Estou com um pequeno problema .... quando insiro um texto no informativo, com aspas simples , ocorre a seguinte mensagem:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression '''gdfg dfg '''.
/email/bloggus/admin/publicando.asp, line 65
esta é a parte no codigo que insere no bd:
Dim chamada, txt, data, nome, hora, SQL
chamada = Request.Form("titulo")
txt = Request.Form("journalItem")
data = Request.form("data")
nome = Request.form("nome")
hora = Request.form("hora")
If chamada = "" or txt = "" Then Response.redirect "publicando.asp"
SQL = "Insert Into posts (titpost, post, datapost, autorpost, horapost) Values('"&chamada&"', '"&txt&"','"&data&"','"&nome&"','"&hora&"')"
ConnDB.Execute(SQL)
Response.Redirect "publicando.asp?erro=1"
já quando coloco alguma "aspa" normal, tudo ok...
Então, vamos lá... preciso da ajuda de alguém ai....
Té mais
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.