代码之家  ›  专栏  ›  技术社区  ›  Mike Polen

在调试模式下,SSIS找不到32位ODBC驱动程序

  •  2
  • Mike Polen  · 技术社区  · 15 年前

    我在64位Windows 2008服务器上。在SSIS中,我有一个ADO.NET数据流项连接到一个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?

    3 回复  |  直到 7 年前
        1
  •  1
  •   Mike Polen    15 年前

    通过在项目调试选项中将run64bitsruntime设置为false,可以解决此问题。这会导致错误:

    [ ADO网络源] 1 ]错误:SSIS错误代码dts_e_诱导的TransformFailureOnError。由于出现错误代码0x80131937,“组件”ADO NET SOURCE“(1)”失败,“输出列”Z U 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

        2
  •  1
  •   Tony Cleveland    15 年前

    安装64位版本mysql-connector-odbc-5.1.6-winx64.msi 32位客户端(xp/vista 32位)使用ODBC 3.51 64位诊所(vista 64位)使用ODBC 5.1

    连接字符串= “driver=mysql odbc 5.1 driver”+ “服务器=nnn.nnn.nn.nnn;”“+ “数据库=我的\u SQL\u数据库;”“+ “uID= MyuUID;”+ “密码=我的密码”

    conn.connectionString=“dsn=my_-odbc_-dsn”;

        3
  •  0
  •   Daniel Jaramillo    7 年前

    尝试再次创建DNS连接。

    转到c:\windows\sysww64,查找odbcad32并配置连接。

    然后

    转到c:\windows\system32并查找odbcad32,然后再次配置连接。

    两者使用相同的名称。

    推荐文章