Postgre 8.0 -gt; ODBC -gt; ADO -gt; Acentuação
Olá, estou tendo problemas com acentuação ao acessar um banco de dados Postgre 8.0 via ODBC/ADO. (Delphi 7)
Não encontrei nehum tópico a respeito.
Via DBExpress está tudo certo. (Mas não posso usá-lo pois a DLL é paga).
Alguém já passou por isto? Qual a solução?
Muito obrigado.
Não encontrei nehum tópico a respeito.
Via DBExpress está tudo certo. (Mas não posso usá-lo pois a DLL é paga).
Alguém já passou por isto? Qual a solução?
Muito obrigado.
Marioguedes
Curtidas 0
Respostas
Bon Jovi
07/04/2005
Dê mais detalhes. Qual encoding está usando na base de dados? Qual versão do driver ODBC? Qual tipo de dados está usando? Qual tipo o Delphi instanciou?
Segue o q uso sem ter esses problemas no Delphi:
ADO + ODBC
ODBC: psqlodbc-07_03_0200.zip 2003-10-22 14:34:12
Encoding: LATIN1
Tipo de dados string: VARCHAR (PostgreSql) - TStringField/ftString (Delphi)
Configurações do data source ODBC:
[size=9:07781bf1fc]´Driver´=´PSQLODBC.DLL´
´Fetch´=´100´
´CommLog´=´0´
´Debug´=´0´
´Optimizer´=´1´
´Ksqo´=´1´
´UniqueIndex´=´1´
[b:07781bf1fc]´UseDeclareFetch´=´1´[/b:07781bf1fc]
´UnknownSizes´=´0´
´TextAsLongVarchar´=´1´
´UnknownsAsLongVarchar´=´0´
´BoolsAsChar´=´1´
´Parse´=´0´
´CancelAsFreeStmt´=´0´
´MaxVarcharSize´=´254´
´MaxLongVarcharSize´=´8190´
´ExtraSysTablePrefixes´=´dd_;´
´Description´=´´
´Database´=´base_teste´
´Servername´=´localhost´
´Port´=´5432´
´Username´=´usuario´
´Password´=´senha´
´ReadOnly´=´0´
´ShowOidColumn´=´0´
´FakeOidIndex´=´0´
´RowVersioning´=´0´
´ShowSystemTables´=´0´
´Protocol´=´6.4´
´ConnSettings´=´´
´DisallowPremature´=´0´
´UpdatableCursors´=´1´
´LFConversion´=´1´
´TrueIsMinus1´=´0´
´BI´=´0´
´ByteaAsLongVarBinary´=´1´
´UseServerSidePrepare´=´0´
´LowerCaseIdentifier´=´0´[/size:07781bf1fc]
Segue o q uso sem ter esses problemas no Delphi:
ADO + ODBC
ODBC: psqlodbc-07_03_0200.zip 2003-10-22 14:34:12
Encoding: LATIN1
Tipo de dados string: VARCHAR (PostgreSql) - TStringField/ftString (Delphi)
Configurações do data source ODBC:
[size=9:07781bf1fc]´Driver´=´PSQLODBC.DLL´
´Fetch´=´100´
´CommLog´=´0´
´Debug´=´0´
´Optimizer´=´1´
´Ksqo´=´1´
´UniqueIndex´=´1´
[b:07781bf1fc]´UseDeclareFetch´=´1´[/b:07781bf1fc]
´UnknownSizes´=´0´
´TextAsLongVarchar´=´1´
´UnknownsAsLongVarchar´=´0´
´BoolsAsChar´=´1´
´Parse´=´0´
´CancelAsFreeStmt´=´0´
´MaxVarcharSize´=´254´
´MaxLongVarcharSize´=´8190´
´ExtraSysTablePrefixes´=´dd_;´
´Description´=´´
´Database´=´base_teste´
´Servername´=´localhost´
´Port´=´5432´
´Username´=´usuario´
´Password´=´senha´
´ReadOnly´=´0´
´ShowOidColumn´=´0´
´FakeOidIndex´=´0´
´RowVersioning´=´0´
´ShowSystemTables´=´0´
´Protocol´=´6.4´
´ConnSettings´=´´
´DisallowPremature´=´0´
´UpdatableCursors´=´1´
´LFConversion´=´1´
´TrueIsMinus1´=´0´
´BI´=´0´
´ByteaAsLongVarBinary´=´1´
´UseServerSidePrepare´=´0´
´LowerCaseIdentifier´=´0´[/size:07781bf1fc]
GOSTEI 0
Marioguedes
07/04/2005
Olá Bon Jovi, onde eu configuro Encoding? Creio que seja aí o meu problema.
A versão do meu driver ODBC é: 8.00.01.01
Grato pela paciência,
A versão do meu driver ODBC é: 8.00.01.01
Grato pela paciência,
GOSTEI 0
Bon Jovi
07/04/2005
Oi, vc deve fazer isso no momento da criação do banco de dados.
Via SQL:
Acrescentar ao CREATE DATABASE: WITH ENCODING=´XXXX´
XXXX = LATIN1 ou UNICODE, etc
Via pgAdmin:
[URL=http://img70.imageshack.us/my.php?image=pgadminnewdatabase0vr.gif][img:62df695d5c]http://img70.imageshack.us/img70/175/pgadminnewdatabase0vr.th.gif[/img:62df695d5c][/URL]
Via SQL:
Acrescentar ao CREATE DATABASE: WITH ENCODING=´XXXX´
XXXX = LATIN1 ou UNICODE, etc
Via pgAdmin:
[URL=http://img70.imageshack.us/my.php?image=pgadminnewdatabase0vr.gif][img:62df695d5c]http://img70.imageshack.us/img70/175/pgadminnewdatabase0vr.th.gif[/img:62df695d5c][/URL]
GOSTEI 0
Keidysakamoto
07/04/2005
tenho o mesmo problema com acentuação.
Só que qdo fui criar o banco com o Latin1 pelo pgAdmin, deu um, erro :
´Multi-byte support is not enabled´
Alguém sabe como eu enable ele?
Só que qdo fui criar o banco com o Latin1 pelo pgAdmin, deu um, erro :
´Multi-byte support is not enabled´
Alguém sabe como eu enable ele?
GOSTEI 0
Marioguedes
07/04/2005
OK Bon Jovi, obrigado! No caso eu crio o banco via arquivo bat, com o aplicativo [b:8aa2a93805]createdb[/b:8aa2a93805]. Com a sua dica, fui atrás, e ele aceita o parametro [b:8aa2a93805][i:8aa2a93805]-E[/i:8aa2a93805][/b:8aa2a93805] que indica o enconding...
Valeu!
Valeu!
GOSTEI 0