Jump to content

dev botao

Problemas de acentuação Delphi/Firebird


Go to solution Solved by Daniel Simoes,
  • Este tópico foi criado há 1726 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Boa tarde a todos,

Estou tento problemas de acentuação com uma máquina Windows 7 de um cliente. 

Temos 2 softwares rodando nesta máquina, um Delphi 7 com Firebird 1.5 e o outro Delphi Seattle com Firebird 2.5. No Delphi 7 os acentos são substituídos por uma espécie de pipe |, inclusive em locais onde o texto não vem do banco de dados, como o caption do CheckCox e títulos do DBGrid. No Delphi Seattle ocorre mais nos dados vindos do BD, o estranho que se eu digito um à em um DBEdit ligado a um ClientDataSet ele aparace normalmente (A com o til), porém quando o foco sai do campo o "til" é removido ficando somente "A". 

O idioma do Windows está configurado como português e a conexão com o banco de dados (utilizo DBExpress) está com o Server Charset WIN1252. Se eu pego o banco e o executável e jogo em outra máquina funciona perfeitamente.

Alguém já teve algum problema assim?

Link to comment
Share on other sites

  • Consultores
22 horas atrás, Renato Chiari disse:

o estranho que se eu digito um à em um DBEdit ligado a um ClientDataSet ele aparace normalmente (A com o til), porém quando o foco sai do campo o "til" é removido ficando somente "A"

O mesmo acontece com um edit normal ou apenas com DBEdits?

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link to comment
Share on other sites

  • Consultores
1 hora atrás, Renato Chiari disse:

Somente com DBEdit

Então é provavelmente relacionado ao BD. O processo é mais ou menos esse:

  1. O usuário digita
  2. O valor é passado ao DBEDit
  3. O DBEdit manda pro TField
  4. O TField manda pro TDataset
  5. O valor é enviado ao BD

Se até aí o valor não sofrer alterações, ele pode sofrer ao voltar do BD. Por exemplo, o Firebird possui collates que ignoram a acentuação.

Não estou dizendo que é o caso, mas não custa verificar.

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link to comment
Share on other sites

Agora, EMBarbosa disse:

Então é provavelmente relacionado ao BD. O processo é mais ou menos esse:

  1. O usuário digita
  2. O valor é passado ao DBEDit
  3. O DBEdit manda pro TField
  4. O TField manda pro TDataset
  5. O valor é enviado ao BD

Se até aí o valor não sofrer alterações, ele pode sofrer ao voltar do BD. Por exemplo, o Firebird possui collates que ignoram a acentuação.

Não estou dizendo que é o caso, mas não custa verificar.

Fiz um teste aqui,

No evento "onChange" do DBEdit o valor é "Ã", em seguinda no evento "onChange" do Field no Client Data Set o valor já é "A". 

Edited by Renato Chiari
Link to comment
Share on other sites

  • Consultores
7 minutos atrás, Renato Chiari disse:

Fiz um teste aqui,

No evento "onChange" do DBEdit o valor é "Ã", em seguinda no evento "onChange" do Field no Client Data Set o valor já é "A". 

Isso confirma o que eu disse acima.

Em 17/02/2020 at 17:23, Renato Chiari disse:

Se eu pego o banco e o executável e jogo em outra máquina funciona perfeitamente.

Visto que você usa ClientDataset, não poderia ser a Midas.DLL?

 

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link to comment
Share on other sites

Em 19/02/2020 at 12:22, EMBarbosa disse:

Isso confirma o que eu disse acima.

Visto que você usa ClientDataset, não poderia ser a Midas.DLL?

 

Tentei atualizar a Midas e nada. Fiz até um novo projeto só para testar com um DBEdit ligado a um ClientDataSet sem conexão com BD, apenas trabalhando em memória e o problema ocorre, sinal que não tem nada relacionado com o BD apenas entre DBEdit/ClientDataSet. Inclusive testei a Midas de duas formas, usando a dll registrada e apenas adicionando MidasLib aos uses.

Link to comment
Share on other sites

  • Este tópico foi criado há 1726 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.

The popup will be closed in 10 seconds...