CARACTERES QUE BAGUNCAM CONSULTAS SQL

USUARIO.EXCLUIDOS 19/04/2007 14:34:57
#212769
Quais caracteres devem ser tratados para que o usuário não digite em campos que possam atrapalhar consideravelmente a consulta sql?
eu todo textBox em minha aplicação onde o usuário vai digitar alguma coisa para grava no BD e posteriormente consultar com SQL, eu coloco no evento Keypress:

'61: =
'39: '
'34: "
'42: *
'63: ?
'33: !
If KeyAscii = 39 Or KeyAscii = 34 Or KeyAscii = 42 Or KeyAscii = 63 Or KeyAscii = 33 Or KeyAscii = 61 Then KeyAscii = 0


Isso é correto? estou fazendo coisas desnecessárias? ou pior: faltam ainda eu adicionar alguns caracteres (o que eu estou temendo)?

valeu galera
USUARIO.EXCLUIDOS 19/04/2007 14:39:07
#212772
Depende, no meu caso, se for um campo para cadastrar Nomes, deixo apenas digitar letras, se for um campo do tipo observação, permito tudo, menos "'".

LIONHEART 19/04/2007 14:50:43
#212774
Brother, apenas as Aspas Simples ('), no caso de vc usar elas para a sua SQL

por exemplo, se a sql for essa:

Sql = "select * from tabela where CAMPO = '" & texto & "'"

Repare, se eu digitar no texto algo tipo "lion's", eu vou fechar as aspas simples, e vai distruir a SQl

Para isso, é simples, basta fazer um replace de aspas simples por aspas simples 2x

exemplo:

texto = replace(texto, "'", "''")

e resolve todo esse problema.
USUARIO.EXCLUIDOS 19/04/2007 15:45:53
#212799
lion, e se o kra digitar 2 aspas simples tipo ''
LIONHEART 19/04/2007 16:02:42
#212808
Citação:

ACG1574 escreveu:
lion, e se o kra digitar 2 aspas simples tipo [ÃÂ'][ÃÂ']



não faz diferença, pq o replace vai torná-las 4, o que acaba por inserir duas aspas duplas dentro da SQL, sem problema nenhum.

O importante é não ter dentro da string uma aspas simples solta, o que causa o encerramento da string.

O SQL por sí só entende que sempre que tiver duas aspas simples é para ser considerada como uma aspas simples textual, enquanto uma isolada de um par é para abertura/encerramento de uma string de comando.
Tópico encerrado , respostas não são mais permitidas