c# - FoxPro 到 C# : What best method between ODBC, OLE DB 或其他?

标签 c# .net foxpro visual-foxpro

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

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

要求:

  1. 导出程序将每晚运行,但我的公司每天 24 小时运行 一天。
  2. DBF 有时可能很大。
  3. 我们不需要修改数据。
  4. 我们的系统使用 FoxPro,非常不稳定:我需要 找到一种绝对不会损坏数据的方法,并且理想情况下不会 读取时锁定 DBF 文件。
  5. 速度是次要要求:它 必须快,但要求 #4 最重要。

最佳答案

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

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

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

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

最后,还有其他访问 DBF 文件的选项。

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

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

相关文章:

c# - Marshal.PtrToStructure(并再次返回)和字节顺序交换的通用解决方案

sql - 如何用另一个文件名创建一个名为 "realizations"的表? (FoxPro)

sql - FoxPro 中的限制

c# - 如何在 ASP.NET 中尝试 3 次无效密码后阻止用户名

c# - 在 Windows Installer 中更改应用程序名称

.net - 2000/XP机器,哪个Visual Studio + .NET Framework?

c# - .NET 框架中的 lambda 是如何解析的?

64-bit - 您在 64 位环境中使用 VFP 应用程序时遇到哪些问题?

c# - 存在 LINQ 查询

c# - 一个方法中具有相同名称的多个变量