Ir para conteúdo
Fórum Script Brasil
  • 0

Duvidas No Asp


visual_online

Pergunta

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

  • 0

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

Link para o comentário
Compartilhar em outros sites

  • 0
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

Link para o comentário
Compartilhar em outros sites

  • 0

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

Link para o comentário
Compartilhar em outros sites

  • 0

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

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...