FoxPro转C#: ODBC、OLE DB或其他方法哪个最好?

4
我们需要使用C#从FoxPro 8读取数据。我将进行一些操作,并将其中的一些数据推送到SQL Server数据库中。我们不确定最佳的读取数据方法是什么。
我看到了OLE DB和ODBC;哪种更好?
要求:
1.导出程序每晚都会运行,但我的公司全天候运营。
2.DBF有时可能非常大。
3.我们不需要修改数据。
4.我们使用的FoxPro系统相当不稳定:我需要找到一种绝对不会破坏数据并且理想情况下不会锁定DBF文件的方法。
5.速度是一个次要的要求:它必须快,但第4个要求最重要。

+1,就像我一样仍然需要处理FoxPro DBF文件 :) - Tim B James
1
VFP ODBC 已经过时了好几年。 - pmoleri
4个回答

5
我会使用OLEDB连接器-它已经更新得更近,速度更快,内存处理更好。如果您只是通过OLEDB驱动程序从DBF读取数据,那么不用担心在记录或文件级别上锁定或损坏数据。您所需要做的就是在C#代码中处理异常,例如当您的FoxPro应用程序中的某个进程独占打开了DBF并且您无法读取它时。您还需要小心任何查询都被优化以使用DBF文件上可用的索引,特别是因为您提到它很大。我假设这都在同一个局域网上?如果必须在互联网上运行,则需要调查通过Web服务公开FoxPro数据的方法。最后,还有其他访问DBF文件的选项。

Sybase还提供ODBCOLEDB驱动程序,可访问DBF文件 - 但它们无法使用FoxPro触发器、存储过程等。不过在您的情况下这几乎肯定无关紧要。


2
根据这篇MSDN文章,建议使用Visual FoxPro OLE DB提供程序。查看该文章,其中提供了如何使用OLE DB提供程序以及如何查询来自DBF数据源的数据的示例。

0

在 Codeplex 上有一个名为 LinqToVfp 的工具。请参见:http://linqtovfp.codeplex.com

它有一些不错的示例,可以帮助您入门。


0

在VFP中编写一些代码以将数据转储为CSV或XML也非常容易 - 考虑将此代码添加到您的FoxPro应用程序中。处理这些文件可能比尝试连接不稳定的FoxPro数据库要容易得多。


好的。之后,我需要另一个工具将其导入到SQL Server吗?我认为这不是最高效的方法... - Bestter
它并不是为了性能而设计的 - 它是最简单且最不可能破坏您的数据的方法,而您将其列为比速度更重要的因素。至于将其导入SQL Server,谷歌有350万个结果。 - William Mioch
我明白。如果另一个机构无法使用OLE DB,或者在使用它时遇到问题,我会建议这个想法。他们正在进行测试!谢谢。 - Bestter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接