Erro na select por causa de caracteres especiais

Delphi

07/12/2006

Olá estou com um problema.

var
cmd: String;
texto: String;
begin
inherited;

texto:= Edit1.Text;
DMClient.cdsEmpresas.Close;
cmd:= ´SELECT * FROM EMPRESAS´;
cmd:= cmd+ ´ WHERE RAZAO_SOCIAL LIKE ´+#39+´¬´+texto+´¬´+39;
cmd:= cmd+ ´ ORDER BY RAZAO_SOCIAL´;
DMClient.cdsEmpresas.CommandText:= cmd;
DMClient.cdsEmpresas.Open;

se eu procurar por ´Ç´ ou ´Ú´ acentos da o seguinte erro
´Database Server Error:
arithmetic exception, numeric overflow, or string truncation
connot transliterate character between character sets´

no banco esta win1252

e esta select roda bem
SELECT *
FROM EMPRESAS
WHERE RAZAO_SOCIAL
LIKE ´¬Ç¬´
ORDER BY RAZAO_SOCIAL

será q o problema esta no componente ClientDataSet?


Francisco


Nussbaum

Nussbaum

Curtidas 0

Respostas

Emerson Nascimento

Emerson Nascimento

07/12/2006

ou talvez o problema esteja no componente de conexão... (sqlconnection ou ibdatabase)


GOSTEI 0
Nussbaum

Nussbaum

07/12/2006

A questão esta ai, uso o IBExpert e lá a select roda, reconhece os caracteres especiais, mas quando enviado pelo delphi ele não reconhece, ai não sei o q fazer para o delphi reconhecer a mesma coisa q no SGBD.

Estou usando o SQLConnection, dbExpress


GOSTEI 0
Titanius

Titanius

07/12/2006

Como o emerson disse, verifique se no componente de conexao voce informou o charset igual ao que voce informou ao criar o banco, senao sempre vai dar este erro mesmo..


[]s


GOSTEI 0
Nussbaum

Nussbaum

07/12/2006

Bom eu alterei a propriedade ServerCharSet para WIN1252, do componente SQLConection, mas ainda da o mesmo erro.

Teria alguma outra propriedade ou ate mesmo uma outra maneira de fazer as selects?


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

07/12/2006

mas o WIN1252 está definido no banco ou somente no campo?


GOSTEI 0
Nussbaum

Nussbaum

07/12/2006

Sim, WIN1252 está definido no banco.

Mas tem uma coisa, para gravar não ha problemas, gravar normal, o erro dá nas consultas.


GOSTEI 0
POSTAR