我安装了 Visual Studio 2010、2012、2013。我还安装了 VS2015 SSDT 预览版。
我正在编辑一些以 Teradata 作为源的现有 SSIS 包。属性在连接管理器中设置。
我安装了以下 Teradata 驱动程序:
- 用于 Teradata 14.11.0.3 的 .NET 数据提供程序
- 用于 Teradata 的 ODBC 驱动程序 - 套件 14.10.17
我无法升级我的驱动程序,因为这些是我们生产服务器上使用的驱动程序。
如果我在连接管理器中右键单击 Teradata cnn,我会在属性窗格中看到以下限定符:
Teradata.Client.Provider.TdConnection, Teradata.Client.Provider, Version=14.11.0.2, Culture=neutral, PublicKeyToken=76b417ee2e04956c
当我通过连接管理器编辑器编辑 Teradata cnn 时,我收到以下错误:
TITLE: Microsoft Visual Studio
------------------------------
Could not get provider invariant name from the connection type qualifier "Teradata.Client.Provider.TdConnection, Teradata.Client.Provider, Version=14.11.0.2, Culture=neutral, PublicKeyToken=76b417ee2e04956c". You may need to manually edit the 'Qualifier' property of the connection manager if the default one selected is different from what you want.
------------------------------
ADDITIONAL INFORMATION:
Could not create a DbProviderFactory class for the provider invariant name 'IBM.Data.DB2'. Verify that this provider is installed correctly on this computer. (Microsoft.DataTransformationServices.Design)
For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft%C2%AE%20Visual%20Studio%C2%AE%202015&ProdVer=14.0.23107.0&EvtSrc=Microsoft.DataTransformationServices.Design.SR&EvtID=CouldNotGetFactory&LinkId=20476
------------------------------
Failed to find or load the registered .Net Framework Data Provider. (System.Data)
然后,当连接属性编辑器打开时,Provider 类型默认为“.Net Providers\SQLClient Data Provider”。
如果我将 Provider 设置回 '.NET Providers.NET Data Provider for Teradata' 然后重新输入 cnn 属性,我可以成功测试连接并执行包。但是,当我在同一个会话中重新编辑该 cnn 时,我得到了同样的错误,并且 cnn 属性默认回到 'SQL Server 属性和以前一样。
我已经多次重新安装驱动程序。我尝试了多个版本的 Visual Studio。我在网上找不到有关 Teradata 的此错误的任何信息。我需要做什么?
可能相关:
我确实有另一个可用的提供程序,名为“IBM DB2 .NET 数据提供程序”,它似乎在错误消息中被引用?但我不知道为什么我不使用 .NET Teradata 驱动程序。
在验证容器和验证 ADO .NET 源之间,我最多需要 15 分钟才能打开一个包。打开包时我经常收到此错误:
TITLE: Microsoft Visual Studio
------------------------------
Unable to cast COM object of type 'System.__ComObject' to interface type 'Microsoft.SqlServer.Dts.Pipeline.Wrapper.IDTSObject100'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{232F2C80-3B6E-4380-8D51-1B358E7FEA43}' failed due to the following error: The application called an interface that was marshalled for a different thread. (Exception from HRESULT: 0x8001010E (RPC_E_WRONG_THREAD)).