|
Context: Windows
Vista x64 PostgreSQL
8.3 (server on localhost) psql-obdc
v8.03.01 Visual
Studio 2008 (VS2008) Problem: I
created a System DSN using the Data Sources (ODBC) administration tool located
in <system>\SysWOW64\odbcad32.exe. Note that this is *not* the
same one you get from Control Panel ->Administrative Tools (that one is in
<system>/system32 and can apparently only manage 64 bit DSNs). Test
successful. In
VS2008, add new Data Source picking up one table from the DSN just created. On
Data Sources tab, can rightclick the table and "Preview Data"...works
fine in the IDE, successfully retrieving data from the database. Create
a trivial Windows Forms Application with a DataGridView [DGV] control. No
code-behind...just connect the DGV Data Source to the DSN table. Run the
application...no data in DGV. Do
exact same thing except with Northwind DSN (sample SQL Server database, not
using PostgreSQL or psql-odbc)...run app...DGV populates just fine. Analysis: Enabling
mylog in psql-odbc doesn't give much information. If I log the VS2008 IDE
interaction with the DSN (e.g., when using "Preview Data")...it all
looks good. If
I compile the app and execute it with mylog enabled...nothing in the log file
except the intialization from turning on logging. That is, the app never finds
the DSN, and in fact gives an error to that effect: [ERROR]
[IM002] [Microsoft] [ODBC Driver Manager] Data source name not found and no
default driver specified. So
it appears that this may be an x64 issue...The application can't find the DSN
probably because there is no entry for it in HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI...instead
the entry is in the redirected key HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBC.INI
but it's not getting redirected there. I
can't understand why the VS2008 IDE can interact with the DSN just fine, but
the simple app can't find it. Perhaps there's a "target platform" I
have to specify? Any ideas? Charles
S. Henkel Henkel
Technical Computing, LLC 9917
Laurel Springs Ave Las
Vegas, NV 89134 |