2009-08-13 273 views
2

我在64位Windows 2008服務器上。在SSIS中,我有一個連接到ODBC連接的ADO.NET數據流項。預覽工作正常。當我在調試模式下執行下面的異常被拋出:SSIS在調試模式下找不到32位ODBC驅動程序

[ADO NET Source [53]] Error: System.Data.Odbc.OdbcException: ERROR [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified 
    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 System.Data.Odbc.OdbcConnection.Open() 
    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) 

我能找到的最好的是SSIS找不到數據源,因爲它是看在64的位置,這是比32位不同一。有沒有辦法來覆蓋這個默認指向它的32位ODBC?

回答

1

該問題可以通過在Project Debugging Options中將Run64BitRuntime設置爲false來解決。這會導致錯誤:

[ADO NET Source 1]錯誤:SSIS錯誤代碼DTS_E_INDUCEDTRANSFORMFAILUREONERROR。由於錯誤代碼0x80131937發生,「組件」ADO NET源「(1)」失敗,並且「輸出列」Z_ID「(38)」上的錯誤行配置指定錯誤失敗。指定組件的指定對象發生錯誤。在此之前可能會發布錯誤消息,提供有關失敗的更多信息。

這是第三方ODBC驅動程序和.NET之間的缺陷。這是按照這裏的步驟解決: http://blogs.msdn.com/sqlblog/archive/2009/04/09/after-installation-of-net-framework-3-5-sp1-or-net-framework-2-0-sp2-ssis-packages-using-odbc-3rd-party-drivers-may-fail.aspx

1

安裝64位版本的MySQL連接器-ODBC-5.1.6-winx64.msi 32位客戶端(XP/Vista的32位)使用ODBC 3.51 64位(Vista 64位)使用ODBC 5.1

conn.ConnectionString = 「DRIVER = {MySQL ODBC 5.1 Driver};」 + 「SERVER = nnn.nnn.nn.nnn;」 + 「DATABASE = my_sql_database;」 + 「UID = my_uid;」 + 「PASSWORD = my_pwd;」;

conn.ConnectionString =「DSN = my_odbc_dsn」;

0

嘗試再次創建DNS連接。

轉到C:\ Windows \ SysWOW64並查找odbcad32並配置連接。

然後

轉到C:\ Windows \ System32下,並期待爲odbcad32和重新配置連接如。

使用相同名稱fot。

相關問題