我们需要用 C# 从 FoxPro 8 读取数据。我要做一些操作,并将其中一些数据推送到 SQL Server 数据库。我们不确定读取这些数据的最佳方法是什么。
我看到了 OLE DB 和 ODBC;什么最好?
要求:
- 导出程序将每晚运行,但我的公司每天 24 小时运行 一天。
- DBF 有时可能很大。
- 我们不需要修改数据。
- 我们的系统使用 FoxPro,非常不稳定:我需要 找到一种绝对不会损坏数据的方法,并且理想情况下不会 读取时锁定 DBF 文件。
- 速度是次要要求:它 必须快,但要求 #4 最重要。
最佳答案
我会使用 OLEDB 连接器 - 它最近更新了很多,速度更快并且可以更好地处理内存。
如果您只是通过 OLEDB 驱动程序从 DBF 读取数据,我不会担心在记录或文件级别锁定,或损坏数据。您需要做的就是处理 C# 代码中的异常,例如,当 FoxPro 应用程序中的某些进程以独占方式打开 DBF 而您无法读取它时。
您还需要注意任何查询都经过优化以使用 DBF 文件上的可用索引,特别是因为您提到它很大。
我假设这一切都在同一个 LAN 上?如果它必须在 Internet 上工作,那么您需要研究通过 Web 服务公开 FoxPro 数据。
最后,还有其他访问 DBF 文件的选项。
Sybase 还提供ODBC和 OLEDB可以访问 DBF 文件的驱动程序 - 但是它们不能使用 FoxPro 触发器、存储过程等。不过,这在您的情况下几乎肯定无关紧要。
关于c# - FoxPro 到 C# : What best method between ODBC, OLE DB 或其他?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12585995/