Consulta Update para retirar acentos

Firebird

24/01/2006

primeiramente gostaria de saber se é realmente aconselhável não utilizar acentos na hora de cadastrar.

tenho uma base de dados das cidades e bairros e são acentuadas. como faço uma consulta update para retirar estes acentos?


Raserafim

Raserafim

Curtidas 0

Respostas

Thomaz_prg

Thomaz_prg

24/01/2006

É mais simples você fazer uma rotina no Delphi para avaliar isso. Eu permito que o usuário coloque acentos normalmente, porém, na hora da pesquisa, substituo os caracteres com acentos por _ (underline). Isso faz com que, no lugar desses caracteres, sejam aceitos quaisquer outros caracteres.


GOSTEI 0
Raserafim

Raserafim

24/01/2006

thomaz, gostei da idéia.
vc pode postar a rotina q vc usa?


GOSTEI 0
Thomaz_prg

Thomaz_prg

24/01/2006

Uso uma query normal para pesquisa, mas antes de passar o parâmetro para pesquisa, uso uma função para tratamento:

with IBQuery1 do begin
  Close;
  SQL.Text := ´select * from tabela where nome like :nome´;
  ParamByName(´NOME´).Value := TrataPesq( VarNome );
  Open;
end;


[b:e983207c7d]Função TrataPesq[/b:e983207c7d]
uses StrUtils...;


function TrataPesq( C:string ):string;
var 
  i : integer;
const
  letras = ´áéíóúàèìòùãõñâêîôûçäëïöüÁÉÍÓÚÀÈÌÒÙÃÕÑÂÊÎÔÛÇÄËÏÖÜ´;
begin
  result := C;
  for i:=1 to length(letras) do 
    Result := AnsiReplaceStr( Result , Copy(letras,i,1) , ´_´ );
  Result := UpperCase( Result );
end;


Se por exemplo digitássemos o valor ´José´ para busca, a função TrataPesq, traria para o SQL o valor ´JOS_´, ou seja, pesquisaria tudo que tivesse ´JOS´+Alguma Letra.


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

24/01/2006

gostaria de saber se é realmente aconselhável não utilizar acentos na hora de cadastrar


quanto ao cadastro em si não sei se há problema ou algum motivo para o desencorajamento do uso. eu sei que, se você trabalha com arquivos de troca de dados (principalmente para o governo), os acentos não são permitidos (pelo menos não eram até um dia desses).


GOSTEI 0
POSTAR