64 位 SQL 服务器 通过 32 位 ODBC 驱动程序将服务器链接到 SyBase
64-bit SQL Server Linked server to SyBase via 32-bit ODBC driver
我有:
- 64 位 SQL Server 2012 安装在 Windows Server 2008R2
- 32位ODBC驱动SyBase ASE 12.5.1(其他官方驱动我没法弄)
我需要的:
- 从 SQL 服务器访问 SyBase
Adaptive Server Enterprise/12.5.4/EBF 14921 ESD#7/P/RS6000/AIX 5.1/ase1254/2095/64-bit/FBO/Fri Oct 12 12:11:32 2007
(我需要 select 来自 2 个表的数据并执行 2 个存储过程)
我已经安装了 ODBC 驱动程序并使用 c:\Windows\SysWOW64\odbcad32.exe
创建了一个 ODBC 源。当我从 ODBC 数据源管理器测试它时,连接成功建立。但是当我创建链接服务器时出现错误:
[Microsoft][ODBC Driver Manager] The specified DSN contains an architecture mismatch between the Driver and Application".
那是因为 64 位 SQL 服务器和 32 位 ODBC 驱动程序不匹配。
显然我需要一些代理来提供服务器和驱动程序之间的连接。
我发现了一些桥梁,但它们都是专有的。
是否有任何免费的代理解决方案或免费的 64 位 SyBase 驱动程序?
UPD
仍然没有好的生产解决方案,但正如 Paolo 在 中所建议的那样,我使用 32 位 SQL Server Express 来解决这个问题。
我一步一步完成的:
- 安装 32 位 SQL Server Express 2014
电脑(可能不是最好的主意,但它使成为可能
使用
Shared Memory
)
通过 ODBC
将 32 位 SQL Server Express 连接到 Sybase 数据库
使用 OPENQUERY
函数在 Express 上创建存储过程以从 SyBase 请求数据
将32位SQL Server Express 2014连接到64位SQL Sever 2012作为链接服务器(Express的地址是LOCAL\(SQLEXPRESS)
)
安装一个备用 sql server express 32 位(我会把它放在单独的机器上)作为到 sybase 的桥梁。
在 64 位实例上创建到 32 位实例的链接服务器;在 32 位实例上创建到 sybase 的链接服务器。
我没有尝试过这种双跃点配置,但它最终可能需要对 32 位 rdbms 进行一些查看才能从 64 位实例访问 sybase 上的数据。
这不是我希望在生产中长期使用的解决方案...
我有:
- 64 位 SQL Server 2012 安装在 Windows Server 2008R2
- 32位ODBC驱动SyBase ASE 12.5.1(其他官方驱动我没法弄)
我需要的:
- 从 SQL 服务器访问 SyBase
Adaptive Server Enterprise/12.5.4/EBF 14921 ESD#7/P/RS6000/AIX 5.1/ase1254/2095/64-bit/FBO/Fri Oct 12 12:11:32 2007
(我需要 select 来自 2 个表的数据并执行 2 个存储过程)
我已经安装了 ODBC 驱动程序并使用 c:\Windows\SysWOW64\odbcad32.exe
创建了一个 ODBC 源。当我从 ODBC 数据源管理器测试它时,连接成功建立。但是当我创建链接服务器时出现错误:
[Microsoft][ODBC Driver Manager] The specified DSN contains an architecture mismatch between the Driver and Application".
那是因为 64 位 SQL 服务器和 32 位 ODBC 驱动程序不匹配。 显然我需要一些代理来提供服务器和驱动程序之间的连接。 我发现了一些桥梁,但它们都是专有的。
是否有任何免费的代理解决方案或免费的 64 位 SyBase 驱动程序?
UPD
仍然没有好的生产解决方案,但正如 Paolo 在
我一步一步完成的:
- 安装 32 位 SQL Server Express 2014
电脑(可能不是最好的主意,但它使成为可能
使用
Shared Memory
) 通过 ODBC
将 32 位 SQL Server Express 连接到 Sybase 数据库
使用
OPENQUERY
函数在 Express 上创建存储过程以从 SyBase 请求数据将32位SQL Server Express 2014连接到64位SQL Sever 2012作为链接服务器(Express的地址是
LOCAL\(SQLEXPRESS)
)
安装一个备用 sql server express 32 位(我会把它放在单独的机器上)作为到 sybase 的桥梁。
在 64 位实例上创建到 32 位实例的链接服务器;在 32 位实例上创建到 sybase 的链接服务器。
我没有尝试过这种双跃点配置,但它最终可能需要对 32 位 rdbms 进行一些查看才能从 64 位实例访问 sybase 上的数据。
这不是我希望在生产中长期使用的解决方案...