3

我们有一个使用 VS2017 设计的测试包,其中包含一个“数据流任务”对象,其中包含“ODBC 源”和“ODBC 目标”对象。该程序包只是尝试将记录从表“Table_1”移动到名为“Test”的同一 SQL Server 2014 数据库中的表“Table_2”。

当我们从 VS2017 执行包时,它运行成功。

但是,当我们将该包导入 SSIS,然后直接从那里运行该包时,我们会收到以下错误消息(请参见下面的屏幕截图):

The version of ODBC Destination, clsid {51B271F1-3B7E-4875-870E-62A0456FE2AD} is not compatible with this version of the DataFlow.
The version of ODBC Source, clsid {F8600F4A-E321-42F4-AA59-DA00FA374EA5} is not compatible with this version of the DataFlow.
The component is missing, not registered, not upgradeable, or missing required interfaces. The contact information for this component is "ODBC Destination;Connector for Open Database Connectivity (ODBC) by Attunity; Attunity Ltd.; All Rights Reserved; http://www.attunity.com;7".

关于是什么导致这些错误的任何想法?

几个小问题/有趣的笔记:

  1. 为什么要引用 Attunity?我们没有使用 Attunity 连接器。我们正在使用 ODBC。我什至没有在这台机器上安装 Attunity(我曾经安装过但卸载了它)。
  2. 如果您不将 DataFlow 任务与 OBDC 驱动程序一起使用,而只是在运行简单的“INSERT INTO Table_2...”语句的包中使用一个简单的“执行 SQL 任务”对象,则该包在 SSIS 中运行。使用数据流任务有问题。

屏幕截图:

在这里可以看到包在VS2017中运行成功:

在此处输入图像描述

将包导入 SSIS:

在此处输入图像描述

当您在 SSIS 中运行它时,它会失败并出现以下错误:

在此处输入图像描述

4

1 回答 1

4

从其他帖子中找到答案。

首先,将项目的 TargetServerVersion 属性更改为您用于 SSIS 的 SQL Server 版本,如下面的链接和屏幕截图所示。

ODBC 源的版本与此版本的数据流不兼容

SSIS:ODBC 源版本与此版本的数据流不兼容

在此处输入图像描述

执行此操作后,您可能会遇到如下错误:

[ODBC Destination [2]] Error: The AcquireConnection method call to the connection manager MyConnectionManager failed with error code 0xC0014009.  There may be error messages posted before this with more information on why the AcquireConnection method call failed.

如果您收到该错误,请将项目的 Run64BitRuntime 属性更改为“True”,如下面的链接和屏幕截图所示。

‌https://social.msdn.microsoft.com/Forums/sqlserver/en-US/eb9e6826-b650-433b-bab9-16da214efd99/the-acquireconnection-method-call-to-the-connection-manager-mydatabaseodbc-failed- with-error-code?forum=sqlintegrationservices

在此处输入图像描述

于 2018-09-27T22:49:43.363 回答