I have an Microsoft SQL Server IS job that has been running in production for 
several years.  It pulls data from a PostgreSQL 8.4.2 database on Linux into an 
SQL Server 2005 installation on Windows  Server 2003 (all 32-bit).  I am 
re-writing this in a test environment that consists of the same PostgreSQL 
database and an SQL Server 2008R2 installation on Windows Server 2008R2 (all 
64-bit).
On the Windows Server 2008R2 machine, I installed 64 bit Postgres ODBC drivers 
and found that I could not see them when creating an ADO.net connection manager 
in BIDS.  A bit of googling later, I removed the 64 bit drivers and installed 
32-bit Postgres ODBC drivers and set up DSNs usning 
windows\SysWOW64\odbcad32.exe.  When setting up the DSNs, clicking the test 
button returned 'Connection successful'.
Back to BIDS, create a new ADO.net connection manager, ODBC Data Provider, 
select the DSN name in 'Use user or system data source name', hit the test 
connection button.  It returns 'Test connection succeeded'.  Create  a data 
flow task, edit, add an ADO.NET source, edit, select the new connection 
manager, Data access mode is set to 'Table or view', click the drop down for 
'Name of the table or view:', it says loading and will sit there like that 
forever.  If I click it again, it returns the following error message:
'Could not retrieve the table information for the connection manager 
'PostgreSQL30'.  Object reference not set to an instance of an object. 
(Microsoft.DataWarehouse)'
If I select 'SQL Command' as the Data Access mode, and enter any SQL Command 
(eg select * from PostgresTable) and hit the Preview button, the expected data 
is returned.
My question is why can it not return the list of tables, but it can return data.
Any help would be appreciated.


Rick Bailey
Database Specialist
Materials Research Institute
123 Land & Water Building
University Park, PA 16802
814-863-1294

Reply via email to