Página 1 de 1

Gravando errado caracteres acentuados no MySql

Enviado: 27 Jun 2007 10:27
por Jarbas
Pessoal, bom dia, minha aplicação em xharbour console com sqllib mostra os caracteres acentuados certos , mas no MySql está ficando errado . Estou usando a gtwvw .

Mto Obrigado
Abs
Jarbas

Enviado: 27 Jun 2007 12:49
por sygecom
Tente colocar no inicio do seu PRG principal.....

Código: Selecionar todos

REQUEST HB_LANG_PT
REQUEST HB_CODEPAGE_PT850 
Abraços
Leonardo Machado

Enviado: 27 Jun 2007 13:36
por Jarbas
Leonardo, obrigado, mas não deu certo, veja como ele grava no mysql

IST

Enviado: 28 Jun 2007 08:43
por sygecom
Tche, que estranho....mas por via das duvidas fale com o Vailton....ele concerteza...vai achar uma solução para isso....se bem que acho que não tenha muito a ver com a SQLLIB.....mas não custa nd tentar.....se eu sober de algo porto aqui !!!

Abraços
Leonardo Machado

Enviado: 28 Jun 2007 16:26
por Jarbas
Leonardo a primeira coisa que eu fiz foi falar com o Vailton , mas infelizmente ele não pode me ajudar, ja testei retirando do meu sistema a gtwvw e o problema persistiu acredito então q seja algo com o xharbour.
Vou continuar procurando uma solução.
Obrigado
Abs
Jarbas

Enviado: 28 Jun 2007 17:16
por sygecom
Tche, eu uso a CONTRIB do MYSQL e não tenho problema....qual versão do seu MYSQL ?

Abraços
Leonardo Machado

Enviado: 28 Jun 2007 19:26
por Jarbas
é MySql 5.0.37 (windows).

Abs
Jarbas

Enviado: 29 Jun 2007 11:35
por sygecom
versão do xharbour ?

Enviado: 29 Jun 2007 11:42
por Stanis Luksys
Olá,

Tente utilizar a função HB_OemToAnsi() antes de gravar no MySQL.
Se quando vc recuperar dados do banco e exibi-los sair desconfigurado, você pode mudar o codepage na GT.

Alterando o codepage as bordas vão ficar ruins, portanto minha recomedação é usar OemToAnsi antes gravar e AnsiToOem antes de exibir.

Para facilitar ainda mais você pode colocar direto no arquivo CH que trata o comando que você utiliza, por exemplo se fosse clipper, você ia lá no CH que tem o replace e colocava o OemToAnsi lá.

Falou!

Enviado: 02 Jul 2007 14:55
por Jarbas
Leonardo o xharbou é 0.99.50.

Stanis obrigado, deu certo mas eu tive q fazer assim :

field->nome:=hb_oemtoansi(_nome) ai ele gravou no MySql com os acentos, mas dessa forma eu teria um trabalho enorme, pois precisaria incluir essa função em todos os campos caracteres.

Não existe uma forma de setar isso no inicio do programa ??

Desde já mto obrigado
Abs
Jarbas

Enviado: 02 Jul 2007 15:34
por MARCELOG
Tente alterar a lingua padrão do mysql com uma query.
Veja no manual algo do tipo "Conjunto de Caracteres" ou "Ordenação".
Talvez dê certo, você passa para o mysql a "obrigação" de alterar os caracteres.
Ou defina a mesma na criação da tabela, acho que é charset=?? ou algo do tipo.

MarceloG