Ir para conteúdo
Fórum Script Brasil
  • 0

Pesquisa ao banco de dados - Dúvida


Dávila Patrícia

Pergunta

Olá pessoal,

Estou fazendo uma pesquisa em um banco (firebird) e mostrando o resultado em um Datagrid no VB6.

Digito uma palavra(ou parte dela) na textBox e é mostrado no dataGrid todos os registro que contem esta palavra. Desconsiderando o case sensitive, para isso uso a função Ucase(), e como o banco é firebird utilizo o upper no comando sql.

Mas estou com um problema, pois quando utilizo a função UCase() é como se ele não recolhecesse acentos e cedilha... mais ou menos assim...

Por exemplo:

se Tenho no banco a palavra "NAÇÃO" já em maiuscula, ele funciona normalmente.

Mas se no banco estiver "nação" em minusculo, ao aplicar a função uCase() a pesquisa não reconhece mais o cedilha e o acento. Sendo assim ele retorna vazio.

Então, Se tenho no banco "NAÇÃO" e "nação" ele mostra no data grid apenas um registro ("NAÇÃO"), quando deveria mostrar os dois. :huh:

Como posso fazer, para que seja feita a pesquisa desconsiderando o case sensitive mas com acentos e cedilha?

Nunca vi isso!!! Se alguém tiver uma dica ficarei muito agradecida!!!

:)

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

patricia, o q ta dando problema é o UCase() do Visual Basic ou do Firebird?? e o LCase() tb da o mesmo problema??

tipo, você usa o UCase() dentro da query (dentro da string) ou fora (o UCase() do Visual Basic)?? qual dos dois da esse problema??

porque o do Visual Basic funciona normal, nunca vi esse tipo de problema.

se for o do firebird não sei, não uso esse banco, mas talvez seja problema da collation do banco de dados, ele tem opcao pra mudar a collation??

Editado por kuroi
Link para o comentário
Compartilhar em outros sites

  • 0
patricia, o q ta dando problema é o UCase() do Visual Basic ou do Firebird?? e o LCase() tb da o mesmo problema??

tipo, você usa o UCase() dentro da query (dentro da string) ou fora (o UCase() do Visual Basic)?? qual dos dois da esse problema??

porque o do Visual Basic funciona normal, nunca vi esse tipo de problema.

se for o do firebird não sei, não uso esse banco, mas talvez seja problema da collation do banco de dados, ele tem opcao pra mudar a collation??

kuroi,

Humm, fiz alguns teste e parece que o problema é no firebird e não no VB. Estava usando o Ucase do VB e o upper(equivalente ao ucase para o FireBird) na query. Mas estava analizando a situação apenas pelo meu programa. Fiz algumas teste direto no banco dá o mesmo problema, sendo assim o problema é a função Upper() do firebird não o Ucase() do vb.

VALEU PELA DICA!!!!

Ainda não sei como resolver... pois nunca vi esta situação... Vou postar na seção do FireBird, pra ver se alguém tem mais alguma dica.

Obrigada!!!! ;)

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...