HomeArtigosCategoriaASP › Resolver problemas com apostrofe ou aspas

Resolver problemas com apostrofe ou aspas

Postado em 23/09/2008 às 5:52:30 PM por Adriano Rosa na categoria asp

Como resolver problemas com apóstrofes (“) ou aspas(') em uma declaração SQL ?
Essa é umas das perguntas mais freqüentes em fórum de discussão sobre ASP e Banco de Dados,
O apóstrofo e as Aspas são caracteres ilegais na linguagem T-SQL porque é interpretado como um delimitador de série para permitir a inserção de um novo registro no Banco de Dados,

No entanto se você tem um formulário ou QueryString onde receberá um certo tipo de dados e depois ira gravar esses dados em banco de dados é necessário criar um rotina para remoção destes caracteres,

Um exemplo - se em um formulário o usuário preenche campo nome com os seguintes valores (Marco D’Alberto ou Adriano “Rosa”), você terá alguns problemas para executar a inserção deste valor,

Para isso utilize uma função Replace ou Expressão Regular para substituir esses caracteres Especiais, de modo que não afete o resultado final da coleta destes dados.

Irei demonstrar de forma básica uma função para substituir esses caracteres, mas existem outras diversas funções bem mais complexas onde é possível até se prevenir contra ataques de SQL-INJECTION não irei abordar este assunto neste artigo. Em um próximo artigo falarei como se prevenir de Injeção SQL.

<% 
 texto1  = "texto com (') e ("")"
 
 Function sEncode(str)
  
  strChr = Replace(str,"""","&quot;",1,-1,0)
  strChr = Replace(str,"'","&rsquo;",1,-1,0)
  
  sEncode = strChr
  
 End Function
 
 With Response
.Write ("INSERT tabela (campo1)VALUES(" & sEncode(texto1) & ")")
End With
%>
output: INSERT tabela (campo1)VALUES(texto com (&rsquo;) e ("))
Publicidade
(1) Comentário
  • Comentou Weslei
    disse em 26/05/2009 12:45:24

    ow vlwo msm.. Aqui tb tem outros caracteres http://www.webgrafismo.com/2009/01/11/tabela-de-acentuacao-e-caracteres-especiais-em-html/

Seu comentário foi salvo com sucesso.

aguarde   Aguarde estamos gravando seu comentário ...
Escreva um comentário Somente texto, Não é permitido uso de tags html
Ultimos Comentários

Desenvolvido em XHTML, CSS, ASP, WEBSTANDARDS
Armazenamento de Dados: SQLServer

AdrianoRosa.Com © 2008 Todos os Direitos Reservados
Autor: Adriano Rosa.

Creative Commons License

Valid XHTML 1.0 Strict