我们需要使用 C# 从 FoxPro 8 中读取数据。我要做一些操作,并将其中一些数据推送到 SQL Server 数据库。我们不确定读取这些数据的最佳方法是什么。

我看到了 OLE DB 和 ODBC;什么是最好的?

要求:

  • 导出程序每晚都会运行,但我公司每天24小时运行
    日。
  • DBF 有时可能很大。
  • 我们不需要修改数据。
  • 我们使用 FoxPro 的系统非常不稳定:我需要
    找到一种绝对不会损坏数据的方法,并且最好不要
    读取时锁定 DBF 文件。
  • 速度是一个次要要求:它
    必须很快,但要求 #4 是最重要的。
  • 最佳答案

    我会使用 OLEDB 连接器 - 它最近更新了很多,速度更快并且可以更好地处理内存。

    如果您只是通过 OLEDB 驱动程序从 DBF 读取数据,我不会担心在记录或文件级别锁定或损坏数据。您需要做的就是处理 C# 代码中的异常,例如,当 FoxPro 应用程序中的某个进程以独占方式打开 DBF 而您无法读取它时。

    您还需要注意优化所有查询以使用 DBF 文件上的可用索引,特别是因为您提到它很大。

    我假设这都在同一个局域网上?如果它必须在 Internet 上工作,那么您需要调查通过 Web 服务公开 FoxPro 数据。

    最后,还有其他选项可用于访问 DBF 文件。

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

    关于c# - FoxPro 到 C# : What best method between ODBC, OLE DB 或其他?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12585995/

    10-10 21:54