我有一个 SSIS 包,它使用 ODBC 连接到 Progress 数据库作为源,使用 32 位 ODBC 驱动程序。该软件包在 BIDS 范围内完美运行。但是,当我使用 SQL 代理运行它时,它会失败并出现以下错误:
指定的 DSN 包含驱动程序和应用程序之间的体系结构不匹配。
我知道这可能是因为它需要一个用于该连接的 64 位 ODBC 驱动程序,但我似乎无法让 64 位驱动程序在 BIDS 中正常工作。有没有什么技巧可以让我在 SQL 代理中使用 32 位驱动程序并继续我的生活?
我有一个 SSIS 包,它使用 ODBC 连接到 Progress 数据库作为源,使用 32 位 ODBC 驱动程序。该软件包在 BIDS 范围内完美运行。但是,当我使用 SQL 代理运行它时,它会失败并出现以下错误:
指定的 DSN 包含驱动程序和应用程序之间的体系结构不匹配。
我知道这可能是因为它需要一个用于该连接的 64 位 ODBC 驱动程序,但我似乎无法让 64 位驱动程序在 BIDS 中正常工作。有没有什么技巧可以让我在 SQL 代理中使用 32 位驱动程序并继续我的生活?
我找到了我的答案。在 Job Step Properties 的 Execution Options 下,最底部有一个复选框 --- “Use 32-bit Runtime”。够简单!
谢谢你的帮助。
BIDS = 您的本地机器,32 位 SQL 代理 = 您的服务器,64 位
那正确吗?
如果是,您将真的需要正确的驱动程序。这是来自 BOL:
请务必注意,如果您在 32 位环境中开发包并希望在 64 位环境中运行该包,则连接管理器需要兼容 64 位。某些连接管理器(例如 Excel)只能在 32 位环境中工作。
Yuo 可以直接用 CmdExec 调用 32bit DTEXEC。指向 32 位 DTEXEC。
C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\dtexec.exe