2009-08-13 4 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) 

내가 찾을 수있는 최선의 그것은 32 비트와 다른 64의 위치에서 찾고 있기 때문에 SSIS는 데이터 소스를 찾을 수 있다는 것입니다 하나. 32 비트 ODBC를 가리 키도록이 기본값을 재정의 할 수 있습니까?

답변

1

이 문제는 프로젝트 디버깅 옵션에서 Run64BitRuntime을 false로 설정하여 해결할 수 있습니다. 이로 인해 오류가 발생합니다.

[ADO NET 원본 1] 오류 : SSIS 오류 코드 DTS_E_INDUCEDTRANSFORMFAILUREONERROR. 오류 코드 0x80131937이 발생하고 "출력 열"Z_ID "(38)"의 오류 행 처리에 오류가 발생했기 때문에 "ADO NET 원본"(1) "구성 요소"가 실패했습니다. 지정된 구성 요소의 지정된 오브젝트에서 오류가 발생했습니다. 실패에 대한 자세한 정보가 포함 된 이전에 게시 된 오류 메시지가있을 수 있습니다.

타사 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/비스타 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에 대한 조회하고 다시 conection에 구성합니다.

두 가지 모두 같은 이름을 사용하십시오.

관련 문제