SQL 消息 7303,级别 16,状态 1,第 3 行无法初始化 OLE DB 提供程序的数据源对象 "VFPOLEDB"

SQL Msg 7303, Level 16, State 1, Line 3 Cannot initialize the data source object of OLE DB provider "VFPOLEDB"

我在虚拟机 运行ning Windows 7 64 位上设置了 32 位 SQL Server 2014 Express (BenVM)。此 SQL 服务器实例有一个链接服务器与其连接,称为 MSCRIBE2,使用 VFPOLEDB (foxpro) 提供程序。在我的虚拟机中,我可以使用 openquery 来查询我的链接服务器。

我还有一台本地机器(Windows 10 64 位),上面还设置了 32 位 SQL Server 2014 Express (BenLocal)。此 SQL 服务器实例有一个链接服务器连接到它,称为 MSCRIBE,使用 VFPOLEDB (foxpro) 提供程序。在我的本地机器上,我可以使用 openquery 来查询我的链接服务器。

我可以从我的本地机器连接到我的虚拟机 (BenVM) 上的 SQL 服务器实例 运行ning 并查询本机表,但是当我尝试 运行 与直接登录到我的 VM 时有效的查询完全相同,我收到以下错误:

OLE DB provider "VFPOLEDB" for linked server "MSCRIBE2" returned message "Invalid path or file name."

Msg 7303, Level 16, State 1, Line 3
Cannot initialize the data source object of OLE DB provider "VFPOLEDB" for linked server "MSCRIBE2"

我尝试使用 windows 身份验证和 SQL 用户作为我从本地计算机登录 BenVM 的登录名,但这似乎并不重要。我还在我的 VM 上尝试了本地服务和命名帐户作为 SQL 服务器 运行 的 "Log On",但这似乎也没有帮助。

两个链接服务器 MSCRIBE 和 MSCRIBE2 都指向我拥有完全 read/write 权限的完全相同的网络资源。而且我没有使用映射的驱动器地址,而是 \\ServerName\Folder

正在使用的查询是

Select * from openquery(MSCRIBE2, '
Select ORDER.DATE,ORDER.ORDERNR
    from [ORDER]
    where cast(ORDER.DATE as date) = {^2018-03-08}
')

如有任何帮助,我将不胜感激。

**** 更新 看起来这个问题与我上面的 openquery 直接相关,我之前没有尝试过,但现在我将它作为常规查询进行了尝试,并且能够连接。我现在使用的查询是:

    Select [ORDER].[DATE],[ORDER].[ORDERNR]
    from MSCRIBE2...[ORDER]
    where cast([ORDER].[DATE] as date) = '2018-03-08'

我认为问题出在安全方面。在任何一种情况下,我都会仔细检查我是否正在使用 32 位驱动程序进行调用(即:C# 代码在 64 位机器上编译为 64 位,除非明确针对 x86)。使用 OpenQuery,您是否至少会尝试提供完整路径而不仅仅是 table 名称(例如 " ... from ([c:\My Folder\Order]) ).