GARANTIR DESCONTO

Fórum Problema ao incluir palavras com acento no Firebird #344071

04/08/2007

0

Olá pessoal. Estou com o seguinte problema: estou fazendo um programa que usa o Firebird 1.5 como banco de dados. Estou usando Delphi 7 e para acessar o banco de dados estou usando o componte ZeosLib. O que acontece é o seguinte: se eu tento incluir, através do programa, alguma palavra que tenha ascento ou outro caractere diferente do alfabeto convencional, dá erro. Eu tive que fazer uma função para retirar todos os ascentos das palavras para não dar erro. Só que se eu incluir a mesma palavra no banco de dados através do IBexpert por exemplo, não dá erro algum. Ou seja, o problema não é na definição dos campos no banco de dados. Só a inclusão através do programa feito no Delphi é que dá erro. No Delphi estou usando Zconection para conectar ao banco de dados e Zquery para acessar as tabelas. Alguém que já tenha usado este componente para acessar o Firebird poderia me dar alguma luz? Existe alguma configuração nestes componentes que deva ser feita para que eu consiga incluir palavras com ascento no banco?
Agradeço desde já pela atenção.


Cristiano D.

Cristiano D.

Responder

Posts

04/08/2007

Martins

[quote:b2a86ec5b8=´Cristiano L. D.´]Olá pessoal. Estou com o seguinte problema: estou fazendo um programa que usa o Firebird 1.5 como banco de dados. Estou usando Delphi 7 e para acessar o banco de dados estou usando o componte ZeosLib. O que acontece é o seguinte: se eu tento incluir, através do programa, alguma palavra que tenha ascento ou outro caractere diferente do alfabeto convencional, dá erro. Eu tive que fazer uma função para retirar todos os ascentos das palavras para não dar erro. Só que se eu incluir a mesma palavra no banco de dados através do IBexpert por exemplo, não dá erro algum. Ou seja, o problema não é na definição dos campos no banco de dados. Só a inclusão através do programa feito no Delphi é que dá erro. No Delphi estou usando Zconection para conectar ao banco de dados e Zquery para acessar as tabelas. Alguém que já tenha usado este componente para acessar o Firebird poderia me dar alguma luz? Existe alguma configuração nestes componentes que deva ser feita para que eu consiga incluir palavras com ascento no banco?
Agradeço desde já pela atenção.[/quote:b2a86ec5b8]

Você pode utilizar o CHARACTER SET ISO8859_1 e collate COLLATE PT_PT.

Eu particularmente não uso caracteres acentuados, mas faça uma procura pelo melhor COLLATE para se trabalhar com eles.

Bons códigos!


Responder

Gostei + 0

04/08/2007

Cristiano D.

Martins, vou testar as opções que vc disse. Eu estou usando o collate PXW_INTL850 e charset WIN1252. Mas se fosse erro de configuração do campo, eu não conseguiria incluir palavras com ascento através do IBexpert... mas incluindo diretamente pelo IBexpert, posso incluir qualquer palavra ascentuada ou qualquer caractere que não dá erro... este erro só ocorre quando uso o programa feito em Delphi... é por isso que eu gostaria de saber se existe alguma configuração a ser feita nos componentes Zconection e Zquery da ZeosDBO para que esse erro não ocorra... mas de qualquer forma agradeço pela atenção...


Responder

Gostei + 0

04/08/2007

Martins

[quote:fe793708a9=´Cristiano L. D.´]Martins, vou testar as opções que vc disse. Eu estou usando o collate PXW_INTL850 e charset WIN1252. Mas se fosse erro de configuração do campo, eu não conseguiria incluir palavras com ascento através do IBexpert... mas incluindo diretamente pelo IBexpert, posso incluir qualquer palavra ascentuada ou qualquer caractere que não dá erro... este erro só ocorre quando uso o programa feito em Delphi... é por isso que eu gostaria de saber se existe alguma configuração a ser feita nos componentes Zconection e Zquery da ZeosDBO para que esse erro não ocorra... mas de qualquer forma agradeço pela atenção...[/quote:fe793708a9]

Infelizmente não vou poder ajudar quanto a esses componentes pois não os utilizo, mas o pessoal aqui do fórum vai te dar uma força.

bons códigos.


Responder

Gostei + 0

06/08/2007

Gandalf.nho

O Character set e o Collate que você está usando já são os mais adequados para o português BR. Quanto ao aplicativo, é necessário passar no momento da conexão com o banco qual o character set usado.


Responder

Gostei + 0

26/08/2007

Cristiano D.

Gandalf, primeiramente me desculpe pela demora em responder. Era justamente isso que faltava fazer para não dar erro. Valeu pela dica. E para todos aqueles que talves estejam passando por este problema, aí vai a solução: no evento BeforeConect do componente ZConnection insira o seguinte código: ZConnection1.Properties.Add (´codepage=WIN1252´);
Se vc estiver usando um charset diferente do Win1252, basta alterar o código acima. Se o seu banco estiver configurado corretamente com o charset e o collete e indicando o charset antes de fazer a conexão vc não terá problemas com ascentos ou qualquer outro caractere. Gandalf, mais uma vez obrigado pela dica...


Responder

Gostei + 0

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

Aceitar