|
Postada em 09/01/2007 19:08 hs
Olá Ed, blz? Olha, o trabalho que vai dar em substituir o apóstrofo por 2 apóstrofos não é o mesmo q substituir o apóstrofo por crase ou acento agudo? Há coisas que não tem jeito, temos q considerar e fazer as consistências necessárias para q o sistema fique estável. falows
|
|
|
|
ED - Clarett
não registrado
|
|
ENUNCIADA !
|
|
|
Postada em 10/01/2007 07:48 hs
Se usar qualquer coisa o problema será o mesmo se o usuario o digitar - apostrofes, acentos, crases, etc... tudo será a mesma porcaria... Estou fazendo testes com aspas, apenas aspas, assim que terminar e testar eu coloco aqui...
|
|
|
|
Postada em 10/01/2007 09:25 hs
Só lembrando de avisar o usuário q se ele gravar um texto com apóstrofo no banco vai ser substituído por crase, acento agudo ou aspas...senão ele não irá achar o texto em uma eventual pesquisa... :) at+
|
|
|
san
não registrado
|
|
ENUNCIADA !
|
|
|
Postada em 11/01/2007 10:02 hs
Se vc optar por trocar o apóstrofe por acento crase ou agudo, tem uma maneira de facilitar um pouco o trabalho de montar a instrução sql. Basta que antes de criar a instrução vc aplique uma função em cada um dos campos texto (e combos se for o caso). Coloque em um módulo a seguinte função: Public Function TxTroca(ByVal Texto As String) As String TxTroca = Replace(Texto, "'", "`") 'estou usando a crase, mas poderia ser o agudo End Function Depois, basta usar as seguintes linhas (conforme os campos da sua tela) para em seguinda criar a instrução sql: Campo1.Text = TxTroca(Campo1.Text) Campo2.Text = TxTroca(Campo2.Text) Campo3.Text = TxTroca(Campo3.Text) Sql = "insert.............. Se vc tiver alguma tela com um campo para o usuário procurar algum dado, use a função no campo antes da rotina de procura. Assim, se ele digitar um apóstrofe, este se transformará em acento crase ou agudo.
|
|
|
ED - Clarett
não registrado
|
|
ENUNCIADA !
|
|
|
Postada em 11/01/2007 16:35 hs
Olá amigos... ghost, é o seguinte... bd.Execute "INSERT INTO CadastroPonto (Ponto, Descrição) VALUES (" & """" & CBOPontos.Text & """" & ", " & """" & CBODescricao.Text & """" & ");" ... no UpDate ou numa instrução Select, não usem nada, exceto aspas e pronto........ ... só que ainda estamos na mesma se o usuario usar aspas... mas que porcaria. A idéia sua e do San, ainda são as melhores, vou acata-las e pronto... abraços... e muito obrigado
|
|
|
CSRocha
|
BRASILIA DF - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 11/01/2007 22:39 hs
Uso há muito tempo uma função pega por aí... não dou o crfédito porque não me lembro mais.
Uso em um módulo:
Public Function Plic(ByVal sTexto As String) As String If InStr(sTexto, Chr(39)) Then Plic = Chr(39) & Replace(sTexto, Chr(39), Chr(39) & Chr(39)) & Chr(39) Else Plic = Chr(39) & sTexto & Chr(39) End If End Function
E chamo assim:
cnn.Execute "Delete From tbPacientes Where Nome = " & Plic(txNome.Text)
Aqui é uma instrução delete, mas é comum em qualquer outra. Note que não há necessidade de se colocar o apóstrofo depois do cinal de =, como fazemos com strings normalmente.
|
|
|