Arithmetic exception, numeric overflow, or string truncation

Firebird

25/07/2005

Como posso fazer uma pesquisa em um campo string que contém acentos, usando like ? sempre que tento dá a seguinte mensagem:

ARITHIMETC EXCEPTION, NUMERIC OVERFLOW, OR STRING TRUNCATION 


uso o firebird com delphi 7 e estou usando sql assim:

Ibquery1.sql.text := ´Select * from clientes´+
´where cli_nome like :nome´;

parambyname(´nome´).value := edit1.text+´¬´;

quando o nome não tem acentos funciona perfeitamente.


Reginaldo174

Reginaldo174

Curtidas 0

Respostas

Reginaldo174

Reginaldo174

25/07/2005

Se eu usar a clausula [b:2896c73e20]Containing[/b:2896c73e20] resolve em partes meu problema porém se pesquisar por josé vai aparecer também:

josé antonio
maria josé
carlos josé
antonio marcos josé

ou seja todos que tiverem josé no nome, porém para um banco de dados que possui 12500 nomes não seria muito viável


GOSTEI 0
Afarias

Afarias

25/07/2005

STARTING é o q vc procura creio eu!


´Select * from clientes where cli_nome starting :nome´



T+


GOSTEI 0
Reginaldo174

Reginaldo174

25/07/2005

STARTING é o q vc procura creio eu! ´Select * from clientes where cli_nome starting :nome´ T+


Tentei esse comando mas também não funcionou. é muito estranho.
por enquanto estou usando uma função para substituir os acentos por ¬ temporariamente tá resolvido mas gostaria de uma solução correta usando SQL.


GOSTEI 0
Gandalf.nho

Gandalf.nho

25/07/2005

Vc está usando qual CHARACTER SET no seu banco e na conexão?


GOSTEI 0
Afarias

Afarias

25/07/2005

Ah! eu não tinha lido o seu post completamente...


...seu problema com acentos não está nos comandos SQL q usa, está na definição do char set da base.

Para trabalhar corretamente com acentos defina um chaset adequado para sua base (ex: iso8859_1 ou win1252). Este mesmo charset deve ser definido tb na conexão.


T+


GOSTEI 0
Reginaldo174

Reginaldo174

25/07/2005

Vc está usando qual CHARACTER SET no seu banco e na conexão?


win1252


GOSTEI 0
POSTAR