我正在使用SQL Server 2016和Visual Studio 2015。
我在使用“ TARGIT数据读取器用于Google Analytics(分析)”时遇到问题。 当我创建数据流任务并将尝试将TARGIT组件移至“数据流”窗口时,出现错误(以下文本)
标题:Microsoft Visual Studio
该组件无法添加到“数据流”任务中。 无法初始化组件。 ProvideComponentProperties方法中存在潜在的问题。
其他信息:
数据流任务[适用于Google Analytics(分析)的TARGIT数据读取器]发生错误:System.InvalidCastException:无法将类型为“ System .__ ComObject”的COM对象转换为接口类型为“ Microsoft.SqlServer.Dts.Pipeline.Wrapper”。 IDTSComponentMetaData100”。此操作失败,因为具有以下错误的IID为'{A7260CEC-4F9E-422E-907B-1EE0671AA7E1}'的接口的COM组件上的QueryInterface调用由于以下错误而失败:不支持此类接口(HRESULT的异常:0x80004002(E_NOINTERFACE)) 。 在System.StubHelpers.StubHelpers.GetCOMIPFromRCW(Object objSrc,IntPtr pCPCMD,IntPtr&ppTarget,Boolean&pfNeedsRelease) 在Microsoft.SqlServer.Dts.Pipeline.Wrapper.IDTSComponentMetaData100.get_RuntimeConnectionCollection() 在TARGIT.SSIS.CustomTasks.DataReaderGoogleAnalytics.Task.ProvideComponentProperties() 在Microsoft.SqlServer.Dts.Pipeline.ManagedComponentHost.HostProvideComponentProperties(IDTSManagedComponentWrapper100包装器)
无法将类型为“ System .__ ComObject”的COM对象转换为接口类型为“ Microsoft.SqlServer.Dts.Pipeline.Wrapper.IDTSComponentMetaData100”。此操作失败,因为具有以下错误的IID为'{A7260CEC-4F9E-422E-907B-1EE0671AA7E1}'的接口的COM组件上的QueryInterface调用由于以下错误而失败:不支持此类接口(HRESULT的异常:0x80004002(E_NOINTERFACE)) 。 (Microsoft.SqlServer.DTSPipelineWrap)
有人知道如何解决吗?
答案 0 :(得分:1)
我的行为完全相同。
我发现,此错误的原因是,TARGIT不支持SQL Server 2017。 即使仅安装了SQL Server 2016,也可能会安装一些2017组件,例如Management Studio 2017。 检查您的ProgramFiles \ SQl服务器中是否存在140文件夹。 此文件夹中的某个位置是一个DLL(不知道哪个),由SQL Server使用。即使您拥有SQL Server 2016,默认情况下它始终会选择DLL的最新版本,在这种情况下,它是SQL 2017之一。我曾尝试在GAC中进行更改,但未成功。 您可以尝试卸载与SQL Server 2017有关的所有内容,并希望之后不再有140文件夹。如果是这样,SQL Server将选择2016年版本的DLL,您应该可以。 或者,您可以使用旧的Visual Studio / DSEXEC(SQL Server 2008R2)(可以并行安装)来编辑和执行TARGIT包。很好。
希望有帮助。 干杯 T先生