为啥 VFP .NET OLEdb 提供程序不能在 64 位 Windows 中工作?

Posted

技术标签:

【中文标题】为啥 VFP .NET OLEdb 提供程序不能在 64 位 Windows 中工作?【英文标题】:Why doesn't VFP .NET OLEdb provider work in 64 bit Windows?为什么 VFP .NET OLEdb 提供程序不能在 64 位 Windows 中工作? 【发布时间】:2010-09-05 06:27:45 【问题描述】:

我使用 VB 编写了一个 Windows 服务,它从 Visual Foxpro 数据库中读取一些遗留数据以插入到 SQL 2005 中。问题是这种使用在 Windows server 2003 32 位中运行良好,但客户端最近移至 Windows 2003 64 位,现在该服务将无法工作。我收到一条消息,指出未找到 VFP .NET OLEdb 提供程序。我进行了研究,一切似乎都表明没有解决方案。任何帮助,请...

【问题讨论】:

【参考方案1】:

您是否尝试在高级编译器选项中将目标 CPU 更改为 x86 而不是 "Any CPU"?我知道这通过强制使用 32 位版本解决了其他 OLEDB 提供程序的一些问题。

【讨论】:

@Paul:我也遇到了这个问题。但是,我的 sln 大约有 10 个项目。我是否需要为所有项目或仅“启动”项目更改此设置?谢谢! @Ken:对不起。我不确定,也无法轻松设置测试。我的猜测是启动项目 + 任何使用 OLEDB 提供程序的项目都会导致问题。 谢谢,不用担心,我让它工作了。但是对于其他阅读本文的人,我只在启动项目中更改了设置,并且成功了。似乎这应该是解决方案设置而不是项目设置。哦,好吧。【参考方案2】:

您需要在编译时将目标CPU 设置为x86 以强制您的代码使用VFP OLE Db provider32 bit 版本。

Microsoft has stated 表示没有计划发布 Visual FoxPro OLE Db 提供程序的64-bit 版本。值得一提的是,微软有 also stated 表示 VFP 9 是 Visual FoxPro 的最终版本,支持将在 2015 结束。如果您需要VFP 9OLE DB 提供程序,您可以获取它here。

【讨论】:

【参考方案3】:

Sybase Anywhere 有一个OLEDB provider 用于VFP 表。页面中说服务器支持64 bit Windows,不知道OLEDB provider

支持 64 位 Windows 和 Linux 服务器

为了进一步增强可扩展性,在适用于 Windows 和 Linux 的 Advantage 数据库服务器中添加了对 x86_64 架构的支持。在具有 x86_64 处理器和 64 位操作系统的计算机上,Advantage 数据库服务器现在可以使用超过 4GB 的内存。额外的内存将允许更多用户同时访问服务器,并增加服务器在处理查询时可以缓存的信息量。

我自己没有尝试过,但是 VFP 新闻组的 some people 报告说它工作正常。

Link to the Advantage Server / VFP Page

【讨论】:

以上是关于为啥 VFP .NET OLEdb 提供程序不能在 64 位 Windows 中工作?的主要内容,如果未能解决你的问题,请参考以下文章

.NET 导入Excel服务器报未在本地计算机上注册 Microsoft.Jet.Oledb.4.0提供程序

Sybase Advantage 数据库服务器和 64 位 VFP OLE 提供程序

microsoft.ace.oledb.12.0 提供程序未注册

Microsoft.Jet.OLEDB.4.0' 提供程序未在本地计算机上注册

OleDb:为啥我不能用我的数据源中的完整模式和信息轻松地填充我的数据集?

将连接字符串从 Microsoft.Jet.OLEDB.4.0 转换为 Microsoft.ACE.OLEDB.12.0 提供程序