CARACTERES QUE BAGUNCAM CONSULTAS SQL
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:
Isso é correto? estou fazendo coisas desnecessárias? ou pior: faltam ainda eu adicionar alguns caracteres (o que eu estou temendo)?
valeu galera
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
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 "'".
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.
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.
lion, e se o kra digitar 2 aspas simples tipo ''
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