I needed to connect SSIS to a DB2 database via ODBC today and learned something worth blogging about: There are different ways to use ODBC connections in SSIS. It seems I learn some cool, new, flexible function about SSIS every time I take it out for a spin!
I had already installed the IBM DB2 client for Windows and tested the ODBC connection it created, so I knew I had good credentials and could access the data I wanted. It's important to check this before proceeding.
I created a new project to test different connection flavors.
I right-clicked in the Connection Managers workspace and selected "Create Connection."
Next, I selected ODBC as the type of connection:
I then clicked the New button on the "Configure ODBC Connection Manager":
The Connection Manager opened and I entered the name of the test server's data source name; followed by my login credentials:
I then clicked the "Test Connection" button. It failed because I mistyped my password, displaying the following dialog:
When I corrected my password, the test succeeded:
I clicked OK to close the Connection Manager...
...and the clicked OK again to close the "Configure ODBC Connection Manager" dialog. A new connection appeared in the connection managers workspace:
I like to rename the connection to something more descriptive, so I appended a dot and the connection type (i.e. ".ODBC") to the connection name:
Next I created a new ADO.Net connection:
When the dialog appeared, I selected the "Odbc Data Provider" provider type:
I then supplied the DSN and credentials as before:
After configuring the connection, I clicked OK and dragged a Data Flow onto the workspace:
I next opened the Data Flow and dragged a DataReader Source onto the data flow:
I double-clicked the DataReader to edit it, and the Advanced Editor. I then toggled between the two connections, hitting the Refresh button to update the feedback:
When set to the ODBC connection, the DataReader cannot acquire a managed connection. I could not make the DataReader work under these conditions:
When I changed the connection to the Ado.net connection and clicked the Refresh button, the feedback vanished, indicating the DataReader is prepared to use this connection object:
That's it! In sum, I was able to use the ODBC connection - but only through the ADO.Net connection.
:{> Andy
Technorati Tags: SSIS Sql Server DB2 Developer Community Richmond Virginia