Select - Ignorar acentos, como?

Delphi

17/06/2009

Estou fazendo uma pesquisa onde no campo existem valores que tem acento.

E aqui na empresa as coisas tem que ser ágeis.
Exemplo:
há os registros:
fulano
ciclano
álcrano


A pesquisa o povo não quer nem saber dos acentos...
Tem uma maneira de quando eu mandar o:
WHERE NMFUNC LIKE :FPARAM

... o mssql (2005) ignorar os acentos?
escrece ´a´ e traz ´á´.

Observações:
- Minha base tem collation ´SQL_Latin1_General_CP1_CI_AI´


.lg.

.lg.

Curtidas 0

Respostas

Powerlog Tecnologia

Powerlog Tecnologia

17/06/2009

Tenho feito isso antes de passar o parâmetro da gravação , ou seja, no insert / update eu tiro antes.

Mas se tiver uma função ou UDF pro FB, seria melhor !


GOSTEI 0
.lg.

.lg.

17/06/2009

... mssql (2005) ...

Para o setor administrativo da empresa... eles precisam do nome completo sem ´excessões´, ou seja, [b:c99557db1b]tem que ter os acentos.[/b:c99557db1b]

Não posso deixar o sistema substituir (eliminando) os acentos em geral.
Infelizmente. :cry:
Eu pensava que o collation removia alem da diferenciação de maiúscula para minúscula... também os acentos. mas me enganei.


GOSTEI 0
Powerlog Tecnologia

Powerlog Tecnologia

17/06/2009

Teve uma edição da CD que tratava de fonética:

[url]https://www.devmedia.com.br/clubedelphi/downloads/Ed_82.htm[/url]

mas é pro FB; acho que dá pra converter !

Aqui não deu tempo de implantar, mas será uma das próximas providências


GOSTEI 0
.lg.

.lg.

17/06/2009

Ja descobri como.
e pensar que eu nunca pensaria nisso.


GOSTEI 0
Powerlog Tecnologia

Powerlog Tecnologia

17/06/2009

compartilha a ideia com a gente ..!!! rs


GOSTEI 0
.lg.

.lg.

17/06/2009

imaginei que vc diria isso. kkkkk
É simples. Como eu havia falado anteriormente...
WHERE NMFUNC LIKE :FPARAM

logo depois insira um ´COLLATE LATIN1_GENERAL_CI_AI´, ficando assim:
WHERE NMFUNC LIKE :FPARAM
COLLATE LATIN1_GENERAL_CI_AI

A condição desconsidera qualquer acento na busca.
:wink:

.lg.


GOSTEI 0
Powerlog Tecnologia

Powerlog Tecnologia

17/06/2009

hehe vlw :!:


GOSTEI 0
Adriano Santos

Adriano Santos

17/06/2009

O meu dá erro, qual Charset tenho que usar?

Undefined name.
Dynamic SQL Error.
SQL error code = -204.
Data type unknown.
COLLATION LATIN1_GENERAL_CI_AI for CHARACTER SET WIN1252 is not defined.


GOSTEI 0
.lg.

.lg.

17/06/2009

[quote:12711c3dbb=´Adriano Santos´]O meu dá erro, qual Charset tenho que usar?

Undefined name.
Dynamic SQL Error.
SQL error code = -204.
Data type unknown.
COLLATION LATIN1_GENERAL_CI_AI for CHARACTER SET WIN1252 is not defined.[/quote:12711c3dbb]
Duas coisa que gostaria de saber:
1. Tem essa parte no seu sql?
for CHARACTER SET WIN1252

2. Teria como eu ver a sua query!?

O charset dou uma olhada amanha de manha pois fiz nos sistemas da empresa, então so amanha vou poder ver pra vc.


GOSTEI 0
Adriano Santos

Adriano Santos

17/06/2009

Ah, só tentei testar a dica:

SELECT
  *
FROM
  FUNCIONARIO
WHERE
  NOME_FUNCIONARIO LIKE ´¬ANDREIA¬´ 
  COLLATE  LATIN1_GENERAL_CI_AI
  FOR CHARACTER SET WIN1252


O FOR CHARACTER SET WIN1252 coloquei depois.


GOSTEI 0
.lg.

.lg.

17/06/2009

O charset eu não usei.
Deu certo sem o charset com você?
o erro so da quando vc usa o charset!?


GOSTEI 0
Adriano Santos

Adriano Santos

17/06/2009

Na verdade, não estudei a fundo. Apenas tentei executar o teste que você passou. Nenhum caso aqui funcionou.

Vlw


GOSTEI 0
.lg.

.lg.

17/06/2009

[quote:7fa0768c4e=´Adriano Santos´]Na verdade, não estudei a fundo. Apenas tentei executar o teste que você passou. Nenhum caso aqui funcionou.[/quote:7fa0768c4e]
pode ser que o collate da sua base já seja [b:7fa0768c4e]LATIN1_GENERAL_CI_AI[/b:7fa0768c4e]. Dá uma olhada. Pode ser por isso que não deu. Meu arrisque.
.lg.


GOSTEI 0
POSTAR