我已经看到了许多关于如何将 DBF 文件转换为 SQL 数据库的解决方案,但是无论如何都可以在不重新编码引用 DBF 文件的程序的情况下转换表?
例如,将 DBF 文件转换为 SQL 表,然后只保留指向 SQL 数据库的指针的 dbf 文件?
目标是允许现有应用程序运行(直到我们迁移代码)但将数据保留在 SQL 中?
我已经看到了许多关于如何将 DBF 文件转换为 SQL 数据库的解决方案,但是无论如何都可以在不重新编码引用 DBF 文件的程序的情况下转换表?
例如,将 DBF 文件转换为 SQL 表,然后只保留指向 SQL 数据库的指针的 dbf 文件?
目标是允许现有应用程序运行(直到我们迁移代码)但将数据保留在 SQL 中?
我不认为您会找到一个工具,该工具将在 DBF 上下文中链接到 SQL,并允许您的代码无缝地通过 DBF 流向您的 SQL Server,同时保持两者都是最新的。
根据您日常事务的复杂程度或范围,我建议您设置一些定期运行的 SSIS 包,以保持 DBF 文件中的数据流向您的 SQL 表,直到您准备好全职提交 SQL。
另一种选择可能是朝着另一个方向接近它。设置链接服务器或从 SQL 中打开行集到 DBF 文件,然后在 SQL 端构建一些存储过程,使用tsql 合并语句或您必须构建的其他查询定期合并数据。
应用程序使用驱动程序与数据库交互。两个数据库(DBF 和任何其他数据库,例如 MySQL)如果没有它们之间的应用程序将无法相互交互,该应用程序会告诉驱动程序该做什么。因此,您现有的应用程序可以与 DBF 以及 SQLDatabase 交互,但不能使 DBF 文件与 SQL 数据库交互。
正如其他人建议的那样,您可以为此目的使用 SSIS。
我认为您会找到最接近的方法是使用 SyBase 的 iSQLAnywhere。他们专门挑选并集成了他们的 SQL 数据库以直接识别 .DBF 文件。但是,正如其他人所提到的,您仍然需要创建与数据库的连接才能获取数据。您可以在 iSQLAnywhere 中创建一个指向空闲表的“数据库”,而不是嵌入到单个“数据库”中,例如其他数据库...
我已经完成了一些 DBF 到 sql 的转换,并且我为保持前端一致而采取的一种方法是创建一组基于 .PRG 的过程。如果您的应用程序是 VFP 并且您始终拥有私有与默认数据会话,那么任何类都尊重表单的“数据会话”,因此如果您在“默认”数据会话下创建一个类,然后运行一个私有的表单,然后调用您的通用类来查询和打开一个表,打开的表将在“默认”会话中被识别,而不是您的表单之一。
现在,也就是说,我做的另一件事是有一个函数来打开连接并分别返回 true/false 并允许中心位置进行调试。如果连接有效,则运行给定的 sql 命令。现在,如果您希望打开给定的“别名”名称,例如“person”表,请使用 sqlexec( lcSomeCommand, "AliasYouWant" ),其余大部分将用于显示和编辑。您仍然必须使用 SQL 插入/更新来推回更改,但是使用参数化 SQL 传递非常简单。