如何使用 MSSQL 链接服务器功能和 ODBC 成功连接到 Foxpro 数据库文件?

如何使用 MSSQL 链接服务器功能和 ODBC 成功连接到 Foxpro 数据库文件?

我们正在尝试使用 Foxpro ODBC 驱动程序通过 MSSQL Server 的链接服务器功能访问基于 Foxpro 文件的数据库文件。

为此,我们

  • 安装了 Microsoft 最新的 Foxpro ODBC 驱动程序,
  • 制作了一个使用此驱动程序的系统 DSN
  • 在数据库类型下选择“Visual FoxPro 数据库 (.DBC)”选项,而不是“自由表目录”
  • 指定我们的 dbc 文件的路径(在本地机器上)
  • 安装了 MSSQL Server 2008 R2 Express
  • 安装了 MSSQL Server Management Studio 2008
  • 尝试使用如下 GUI 向导创建一个新的链接服务器: 新的链接服务器屏幕截图

但最后一步永远无法完成(永远显示正在执行)。当 Management Studio 被强制关闭并重新启动时,新的链接服务器仍然存在,但仅包含 Catalogues 子项。如果我们尝试展开它,Management Studio 会再次陷入循环。

答案1

  • 下载并安装适用于 Visual FoxPro 的 Microsoft OLE DB 提供程序
  • 确保它在 MSSQL Management Studio 中的“系统对象”>“链接服务器”>“提供程序”下显示为“VFPOLEDB”。我必须安装它、卸载它并重新安装它,直到找到它(不,重新启动 Windows 不起作用)。
  • 打开系统对象,右键单击链接服务器并选择添加新的链接服务器。
  • 像这样填写表格:具有 Foxpro 连接正确值的新链接服务器的屏幕截图
    • 无需在 ODBC 小程序中添加任何 DSN
    • 单击“确定”并查看您是否可以深入研究新的链接服务器直到看到表。
    • 右键单击某个表并将 SELECT 查询脚本编写到新查询窗口。这为您提供了如何查询此新链接服务器的示例:
      SELECT * FROM [myLinkedServer]...[myTable]

答案2

首先要确保如果您使用的是 32 位 SQL Server,则使用的是 32 位驱动程序;如果您使用的是 64 位 SQL Server,则使用的是 64 位驱动程序。64 位 SQL Server 不能使用 32 位 ODBC(或 OLEDB 或其他)驱动程序。

我曾让 Microsoft 的旧 ODBC 驱动程序关闭服务器实例,因此我避免使用它们。

在 SQL Server 2005 及更高版本的最新版本中,我使用“ACE”驱动程序取得了最大的成功。这些驱动程序取代了旧的“JET”驱动程序,并随 Office 2007 一起推出。它们基于 OLEDB,但您不一定会注意到。Office 2010 的版本有 32 位和 64 位版本。可再发行的 ACE 驱动程序可供下载 在微软的网站上。

使用新驱动程序,您无需像使用旧 ODBC 驱动程序那样创建系统 DSN。您只需创建链接服务器即可。互联网上应该有很多关于如何使用 ACE 驱动程序(使用 TSQL 和 SSMS GUI)创建链接服务器的示例。

您将需要确保代表您的驱动程序的提供程序(在“链接服务器”文件夹下查找“提供程序”文件夹)设置为“允许在进程中”并且。

您可能还会发现,访问网络上的文件比访问本地磁盘上的同一文件更困难。这通常是委派和安全方面的问题。根据您的基础设施,实现这一点可能会很麻烦。

(如果您有兴趣,大约三四年前我写过几篇博客文章“64 位世界中的旧式连接”,内容涉及 dbase/foxpro 问题、32/64 位问题以及 db/2 和其他内容。那里的内容可能比您想读的还要多。这是在 64 位 ACE 驱动程序发布之前写的,现在情况好多了。)

相关内容