Postgresql – 32bit and 64bit Versions of PostgreSQL 9.1 ODBC are Mixed Up

64-bitodbcpostgresqlsas

I've installed both the 32bit and 64bit versions of psqlODBC 9.1. When I configure both a 32bit and a 64bit System DSN they get written to the ODBC.ini file incorrectly:

[ODBC 32 bit Data Sources]
pg_crdb_latest=PostgreSQL Unicode (32 bit)
pg_crdb_latest_32=PostgreSQL Unicode(x64) (32 bit)
[pg_crdb_latest]
Driver32=C:\Program Files (x86)\psqlODBC\0901\bin\psqlodbc35w.dll
[pg_crdb_latest_32]
Driver32=C:\Program Files\psqlODBC\0901\bin\psqlodbc35w.dll

The pg_crdb_latest DSN was added using the 64bit ODBC Data Source Administrator. The pg_crdb_latest_32 DSN was added with the 32bit one.

FYI – I installed the 32bit version first, then the 64bit version.

The outcome is I get this error when trying to connect to PostgreSQL 9.1 64bit in SAS 9.2 64bit:

ERROR: CLI error trying to establish connection: [Microsoft][ODBC
Driver Manager] The specified DSN contains an architecture mismatch
between the Driver and Application

Any ideas how to set this right? I'm running Windows 7 Pro 64bit.

Best Answer

This link explains it all

http://www.easysoft.com/developer/interfaces/odbc/64-bit.html#odbc-windows

So two things:

  1. Windows has very poor file and directory naming conventions regarding ODBC - hence the confusion
  2. 64bit PostgreSQL ODBC is currently very slow (10x slower than SAS to SQL 64bit via OLEDB) - I'll investigate this further
Related Topic