Fórum Erro na select por causa de caracteres especiais #334381

07/12/2006

0

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

Responder

Posts

07/12/2006

Emerson Nascimento

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


Responder

Gostei + 0

07/12/2006

Nussbaum

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


Responder

Gostei + 0

07/12/2006

Titanius

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


Responder

Gostei + 0

08/12/2006

Nussbaum

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?


Responder

Gostei + 0

08/12/2006

Emerson Nascimento

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


Responder

Gostei + 0

12/12/2006

Nussbaum

Sim, WIN1252 está definido no banco.

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


Responder

Gostei + 0

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

Aceitar