通过32位ODBC驱动程序将64位SQL Server链接到SyBase的服务器

时间:2015-09-25 08:52:38

标签: sql-server odbc sybase 32bit-64bit linked-server

我有什么:

  • Windows Server 2008R2上安装的64位SQL Server 2012
  • 32位ODBC驱动程序SyBase ASE 12.5.1(我无法获取任何其他官方驱动程序)

我需要什么:

  • 从SQL Server访问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(我需要从2个表中选择数据并执行2个存储过程)

我已经安装了ODBC驱动程序并使用c:\Windows\SysWOW64\odbcad32.exe创建了一个ODBC源代码。从ODBC数据源管理器测试连接时成功建立连接。但是当我创建一个链接服务器时,我收到一个错误:

  

[Microsoft] [ODBC驱动程序管理器]指定的DSN包含驱动程序和应用程序之间的体系结构不匹配“。

这是因为64位SQL Server和32位ODBC驱动程序之间存在不匹配。 显然我需要一些代理来提供服务器和驱动程序之间的连接。 我找到了几座桥,但它们都是专有的。

是否有免费的代理解决方案或免费的64位SyBase驱动程序?

UPD

仍然没有好的生产解决方案,但正如answer中提出的Paolo,我使用32位SQL Server Express解决了这个问题。

我一步一步做了什么:

  1. 安装32位SQL Server Express 2014 copmputer(可能它不是最好的主意,但它可以实现 使用Shared Memory
  2. 通过ODBC

  3. 将32位SQL Server Express连接到Sybase数据库
  4. 使用OPENQUERY函数在Express上创建存储过程以从SyBase请求数据

  5. 将32位SQL Server Express 2014连接到64位SQL Sever 2012作为链接服务器(Express的地址为LOCAL\(SQLEXPRESS)

1 个答案:

答案 0 :(得分:1)

安装一个备用sql server express 32位(我会把它放在一台单独的机器上)作为sybase的桥梁。

64位实例上的

创建一个到32bit实例的链接服务器;在32位实例上创建一个到sybase的链接服务器。

我没有尝试这种双跳配置,但它最终可能需要32位rdbms上的一些视图才能从64位实例访问sybase上的数据。

这不是我想在生产中长期使用的解决方案......