Ir para conteúdo
  • Cadastre-se

dev botao

Problemas de acentuação Delphi/Firebird


Ver Solução Respondido por Daniel Simoes,
  • Este tópico foi criado há 1498 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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". 

Editado por Renato Chiari
Link para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros sites

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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...