Página 1 de 1
Dúvida ADO codepage
Enviado: 07 Abr 2015 23:22
por JoséQuintas
Fiquei confuso agora com o que encontrei.
Procurando a codepage do ADO, encontrei que a codepage default é UNICODE.
https://msdn.microsoft.com/en-us/librar ... s.85).aspx
Mas que eu me lembre, nenhuma LIB de ADO para o Harbour trata isso.
Alguém poderia confirmar isso, se precisa setar codepage Windows-1252 na conexão, caso seja usada PTISO no Harbour.
Dúvida ADO codepage
Enviado: 07 Abr 2015 23:50
por JoséQuintas
Por enquanto identifiquei estas possibilidades de configuração:
No Harbour
Alterar o default pra PTISO
Na conexão ADO:
Alterar o default de unicode pra CharSet="Windows-1252"
Na string de conexão do MySql:
Não sei se apenas o ADO é suficiente, ou se precisa alterar a string de conexão: Collation=latin1
No MySql, o default é UTF8 a não ser que seja alterado:
latin1_swedish_ci
A questão não é apenas o Harbour ler/gravar informação, mas os dados aparecerem corretamente se acessados por outra linguagem de programação.
No VB6, por exemplo, o default é unicode, igual ao ADO.
Dúvida ADO codepage
Enviado: 08 Abr 2015 12:44
por JoséQuintas
Notas adicionais:
No MySql mais antigo, o default pra tudo era latin1 - no servidor
No MySql atual, o default pra tudo é UTF8
Justamente por essa diferença é que me perdi.
Como vi diferença na hora de backup/restore via Harbour, acredito que precise algo mais.
No backup/restore, o backup é pelo Harbour, mas o restore é pelo HeidiSql.
Chega a rejeitar linhas com caracteres acentuados, e o pior, talvez como já exista mistura no banco de dados, o próprio restore pelo HeidiSql de um backup feito por ele mesmo também acusa alguns erros.
Dúvida ADO codepage
Enviado: 08 Abr 2015 21:47
por JoséQuintas
Pra confundir ainda mais:
http://stackoverflow.com/questions/2588 ... s-of-mysql
O ODBC 3.51 trabalha somente com Ansi
ODBCs mais modernos tem versão em Ansi e Unicode.
Já não sei mais qual seria a configuração correta.
Nenhuma resposta nem aqui nem no harbour-users.
Deixei tudo como latin1 (default latin_swedish_ci) e odbc 3.51 que trabalha com Ansi.
Isso implica em alterar o default do MySql Server atual, e incompatibilidade com HeidiSql.
Dúvida ADO codepage
Enviado: 09 Abr 2015 01:16
por alxsts
Olá!
Será que o MariaDB trata esta questão de alguma forma melhor que o MySQL?
Dúvida ADO codepage
Enviado: 09 Abr 2015 01:32
por JoséQuintas
É tudo igual, seja MySql ou Mariadb.
Só considerar que o Mariadb sempre foi binariamente compatível com MySql, e os mesmos odbcs pra MySql funcionam no Mariadb.
Mesmas configurações existem nos dois.
No Harbour escolhemos a codepage em uso.
Acho que isso já é suficiente pra causar variações.
E se existe diferença, isso deve acontecer com qualquer LIB pra acessar o MySql.
Considero que vários por aqui usam MySql, baseado nas discussões sobre qual biblioteca usar pra MySql.
No momento, aqui, a diferença é ao comparar a consulta feita pelo Harbour e pelo HeidiSql.
O importante não é apenas o Harbour funcionar, mas o conteúdo da base de dados ser compatível com o mundo externo.