Group: General Forum Members
Last Login: Monday, October 28, 2013 8:23 AM
I'm wondering if someone out there can help restore my sanity. Here's the scenario:
A third-party Firebird server holds data I retrieve on an instant/hourly/daily basis. In a 32bit world all is fine - everything works just dandy. However, like many, our kit is being 'upgraded' to 64 bit (one-way ticket, no option or argument).
The Visual Studio install on my new 64bit PC turns out be 32 bit version. No bother, we've installed both the 64 and 32 bit ODBC driver for Firebird and the Connection Test succeeds in both cases.
My MS Office install also turns out to be 32 bit, so firing up the 32bit ODBC driver I get a perfect linked-table connection to Firebird and the data is there to play with - all good so far.
Scheduled updates of Firebird data to our data warehouse (SQL 2008 R2) are achieved via SSIS packages. The ones designed and run on a 32 bit PC using VS2008 32 bit application all work.
Back to my 64 bit PC...
Setting up the Data Source / Connection Manager; As the VS2008 install is 32 bit, we assumed the 32 bit ODBC driver would be invoked and it is. The connection string is correct. The Test Connection button provides a friendly 'succeeded' message.
Pulling in a ADO NET data source task: My configured ODBC CM is available so it's plugged in. Building the query I can list all the tables on the distant Firebird server. Choosing a table, I can list all the fields in the table. Accepting the query, and clicking the "Preview..." button I get a friendly dialog box listing all the records in the table I just queried - all seems well.
And then I run the package; the ADO NET Source task instantly turns red, the package fails and I am gifted the following Debug messages:
SSIS package "CheckConn.dtsx" starting.
Information: 0x4004300A at Data Flow Task, SSIS.Pipeline: Validation phase is beginning.
Error: 0xC0047062 at Data Flow Task, ADO NET Source : System.Data.Odbc.OdbcException: ERROR [IM014] [Microsoft][ODBC Driver Manager] The specified DSN contains an architecture mismatch between the Driver and Application
at System.Data.Odbc.OdbcConnection.HandleError(OdbcHandle hrHandle, RetCode retcode)
at System.Data.Odbc.OdbcConnectionHandle..ctor(OdbcConnection connection, OdbcConnectionString constr, OdbcEnvironmentHandle environmentHandle)
at System.Data.Odbc.OdbcConnectionOpen..ctor(OdbcConnection outerConnection, OdbcConnectionString connectionOptions)
at System.Data.Odbc.OdbcConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup)
at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
at Microsoft.SqlServer.Dts.Runtime.ManagedHelper.GetManagedConnection(String assemblyQualifiedName, String connStr, Object transaction)
at Microsoft.SqlServer.Dts.Runtime.Wrapper.IDTSConnectionManager100.AcquireConnection(Object pTransaction)
at Microsoft.SqlServer.Dts.Pipeline.DataReaderSourceAdapter.AcquireConnections(Object transaction)
at Microsoft.SqlServer.Dts.Pipeline.ManagedComponentHost.HostAcquireConnections(IDTSManagedComponentWrapper100 wrapper, Object transaction)
Error: 0xC0047017 at Data Flow Task, SSIS.Pipeline: component "ADO NET Source" (31) failed validation and returned error code 0x80131937.
Error: 0xC004700C at Data Flow Task, SSIS.Pipeline: One or more component failed validation.
Error: 0xC0024107 at Data Flow Task: There were errors during task validation.
SSIS package "CheckConn.dtsx" finished: Failure.
I note the "IM014: The specified DSN contains an architecture mismatch between the Driver and Application" message. Yet I'm using a 32 bit App with a 32 bit Driver.
Can anyone explain why this is happening please? And what can I do to fix this and get it to work please? Apologies that this is a lengthy post, but your insight and wisdom would be very warmly welcomed.