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

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

为此,我们已经

  • 从Microsoft安装最新的Foxpro ODBC驱动程序,
  • 制作了一个使用这个驱动的系统DSN
  • select“数据库types”下的“Visual FoxPro数据库(.DBC)”选项,而不是“空闲表目录”
  • 指定我们的dbc文件的path(在本地机器上)
  • 安装了MSSQL Server 2008 R2 Express
  • 安装了MSSQL Server Management Studio 2008
  • 试图通过使用像这样的GUI向导来创build一个新的链接服务器: 新的链接服务器截图

但最后一步永远不会完成(执行永远显示)。 当Management Studio被强制closures并重新启动时,新的链接服务器在那里,但只包含Catalogs子项目。 如果我们试图扩展它,Management Studio再次进入循环。

  • 下载并安装Visual FoxPro的Microsoft OLE DB提供程序
  • 确保它出现在“系统对象”>“链接服务器”>“提供程序”下的MSSQL Management Studio中,名称为“VFPOLEDB”。 我不得不安装它,卸载它,并重新安装它,直到我得到它(没有,重新启动Windows不工作)。
  • 打开系统对象,右键单击链接服务器,然后select添加一个新的链接服务器。
  • 像这样填写表格: 使用适当的Foxpro连接值的新链接服务器的屏幕截图
    • 无需在ODBC小程序中添加任何DSN
    • 单击确定,看看现在是否可以钻取新的链接服务器,直到看到表。
    • 右键单击某个表并将SELECT查询编写到新的查询窗口。 这给你一个例子如何查询这个新的链接服务器:
      SELECT * FROM [myLinkedServer]...[myTable]

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

我已经从微软的ODBC驱动程序closures服务器实例,所以我避免它们。

在SQL Server 2005+的最新版本上,我用“ACE”驱动程序取得了最好的成绩。 这些驱动程序replace旧的“JET”驱动程序,并在Office 2007中引入。它们是基于OLEDB的,但不一定会注意到。 用于Office 2010的32位和64位版本。 可重新分发的ACE驱动程序可以在Microsoft网站上下载 。

使用新的驱动程序,您不需要像使用旧的ODBC驱动程序一样创build系统DSN。 你可以创build链接的服务器并去。 应该有很多关于如何在互联网上使用ACE驱动(使用TSQL和SSMS GUI)创build链接服务器的例子。

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

您也可能会发现访问networking上的文件比访问本地磁盘上的文件更困难。 这通常是委派和安全问题。 取决于您的基础设施,实现这一目标可能是一件麻烦事。

(如果您有兴趣,大约三四年前,我做了一些博客文章“64位世界中的传统连接”,涵盖了dbase / foxpro问题,32/64位问题以及db / 2和其他内容。可能比你想读的还要多,这是在64位ACE驱动程序发布之前,现在情况好转了。