Fórum problemas com acentos e maiusculas no SQL!!! #241882

07/07/2004

0

e ai galera , blz? o porblema é o seguinte ...tenho um banco de dados com muitos nomes.... eles estao digitados todos com maiusculas na primeira letra e seus devidos acentos , tipo ´ Maria José de Souza ´ ...
para fazer consultas isso nao seria interessante , resolvi entao colocar os devidos comandos em sql para q ele ignore maiusculas !!! ai tudo blz ... digito a palavra a ser pesquisada em tudo em minusculas e ele acha legal!
agora o problema é o seguinte eu tenho um cadastro com o nome José no inicio por exemplo ... eu digito jose pra pesquisar e ele nao acha! certo neh??? mas o estranho é q eu digitando josé , ele TBM nao acha!!! e ja descobri q ta dando erro por causa do comando pra ignorar maisculas , pois quando eu tiro ele roda tudo blz...digito José e acha tudo numa boa !!! sabem o q pode ser isso? ou qual o comando no SQL pra ele ignoras maisculas e acentos ???
o codigo q estouusando atualmente é esse:

//******************************************************
procedure TFormLocaliza.BitBtn1Click(Sender: TObject);

begin

Query1.Close;
Query1.SQL.Text:=
´Select * From Dados Where Upper(Nome) Like ´´¬´+UpperCase(Edit1.Text)+´¬´´ ´;
Query1.Open;

if QueryTelemar.RecordCount=0 then
Begin

ShowMessage(´Nenhum registro encontrado!´);

end;

end;

//**********************************************************

agradeço a todos pela atençao !
valew!


Pedrohventura

Pedrohventura

Responder

Posts

07/07/2004

Bon Jovi

Ao invés de UpperCase use AnsiUpperCase.


Responder

Gostei + 0

07/07/2004

Pedrohventura

ola bom jovi , o comando AnsiUpperCase Resolveu em partes o problema , aquele problema de quando eu digitava ´josé´ e ele nao achava ja ta blz !!!!
mas o q esta faltando é algum comando pra fazer o sql ignorar o acento...
tipo eu digitar ´ jose ´ sem acento e ele achar o registro (q no caso esta acentuado)... existe alguma forma de fazer isso???


Responder

Gostei + 0

07/07/2004

Lucas Silva

Uma solução é vc travar os acentos, quando o usuário insere os dados na sua aplicação.


Responder

Gostei + 0

07/07/2004

Pedrohventura

mas o problema é q o banco de dados ja esta pronto e com muitos registros !!!


Responder

Gostei + 0

07/07/2004

Bon Jovi

ola bom jovi , o comando AnsiUpperCase Resolveu em partes o problema , aquele problema de quando eu digitava ´josé´ e ele nao achava ja ta blz !!!! mas o q esta faltando é algum comando pra fazer o sql ignorar o acento... tipo eu digitar ´ jose ´ sem acento e ele achar o registro (q no caso esta acentuado)... existe alguma forma de fazer isso???


Ok. Mas agora é necessário saber qual banco vc tá usando.


Responder

Gostei + 0

08/07/2004

Pedrohventura

eu to usando paradox...vou ate aproveitar pra perguntar..esse banco tem cerca de 500.000 registros...e as buscas estao muito lentas !!! sera q tem um jeito de deixar isso + rapido??? sera q vale a pena converter??? o q acham?
obrigado!


Responder

Gostei + 0

08/07/2004

Bon Jovi

Melhor mesmo mudar de banco.

Sobre a questão veja se esses tópicos podem ajudar:

http://delphiforum.icft.com.br/forum/viewtopic.php?t=22386
http://delphiforum.icft.com.br/forum/viewtopic.php?t=20961
http://delphiforum.icft.com.br/forum/viewtopic.php?t=14681
http://delphiforum.icft.com.br/forum/viewtopic.php?t=9309

Nunca participei de um sistema que tivesse esse requisito, mas uma outra alternativa que imagino no momento seria vc criar uma coluna nova pra guardar o nome sem acento.

Claro, teria que antes fazer um programinha temporário pra atualizar os registros existentes. O programinha só rodaria uma vez... nao importaria a lentidao do loop.

Aí no seu sistema toda vez que gravar ´NOME´ usaria uma função via Delphi pra retirar os acentos e gravar em ´NOME_SEM_ACENTO´...
ClientDataSet1.FieldByName(´NOME_SEM_ACENTO´).AsString := RetiraAcento(edtNome.Text);

Se essa situação for em muitas tabelas pode não valer a pena. Avalie seu caso pra ver o q é melhor. Podendo tb avaliar a questão de só gravar sem acento mesmo, como o Lucas falou. Pois basta vc fazer o programinha pra atualizar a base existente.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar