Skip site navigation (1) Skip section navigation (2)

odbc problem on Japanese windows machine

From: "Sofer, Yuval" <Yuval_Sofer(at)bmc(dot)com>
To: <pgsql-admin(at)postgresql(dot)org>
Subject: odbc problem on Japanese windows machine
Date: 2007-12-13 13:40:22
Message-ID: E9DE7963E5EA6546B42A979EC28B4D0136B5ADB7@hou-ex-02.adprod.bmc.com (view raw or flat)
Thread:
Lists: pgsql-admin
Hi, 

 

I am trying to use postgres odbc driver on windows Japanese machine, to
test connection to a remote postgres database. The database has latin1
encoding. 

 

Connection tests to databases with latin1 encoding fail with this error
message: 

 

fatal: conversion between SJIS and LATIN1 is not supported

 

Connection tests to databases with utf8 encoding succeed.

 

I checked both server source and odbc driver source and saw that the
message comes from postgres server code. 

 

It seems that the postgres odbc sends SJIS characters to the latin1
database and it cannot convert.

I know that the next command retrieves with the same error: 

 

alter database <db_name> set client_encoding="SJIS"

 

Is there any switch in the code to bypass local machine encoding?

Why does it send Japanese encoding? 

Postgres odbc driver is not Japanese application. For what the
conversion is needed? 

Is there any way to overcome this problem? 

 

Steps to reproduce error message: 

 

1. Put postgres odbc drivers (psqlodbc30a.dll and psqlodbc35w.dll) under
c:\windows\system32

 

2. Update machine registry with next values: 

[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers]

"PostgreSQL ANSI"="Installed"

"PostgreSQL Unicode"="Installed"

 

[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\PostgreSQL ANSI]

"APILevel"="1"

"ConnectFunctions"="YYN"

"Driver"="c:\windows\system32\PSQLODBC30A.DLL"

"DriverODBCVer"="03.00"

"FileUsage"="0"

"Setup"=" c:\windows\system32\PSQLODBC30A.DLL"

"SQLLevel"="1"

"UsageCount"=dword:00000001

 

[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\PostgreSQL Unicode]

"APILevel"="1"

"ConnectFunctions"="YYN"

"Driver"=" c:\windows\system32\PSQLODBC35W.DLL"

"DriverODBCVer"="03.51"

"FileUsage"="0"

"Setup"=" c:\windows\system32\PSQLODBC35W.DLL"

"SQLLevel"="1"

"UsageCount"=dword:00000001

 

3. Create datasource and test connection to latin1 encoding database: 

Settings -> administrative tools -> data source (ODBC) 

And then add system data source with postgres driver. Configure this
data source to 

connect to latin1 postgres database.

 

Thanks, 

 

Yuval Sofer
BMC Software
CTM&D Business Unit

DBA Team
972-52-4286-282
yuval_sofer(at)bmc(dot)com <mailto:yuval_sofer(at)bmc(dot)com> 

 

Responses

pgsql-admin by date

Next:From: Kevin KempterDate: 2007-12-13 17:06:23
Subject: pg_restore error
Previous:From: olivier boissardDate: 2007-12-13 13:15:13
Subject: Re: improve performance in a big table

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group