将数据库从DBF转换为SQL而不进行重新编码

时间:2012-10-09 20:20:02

标签: sql dbf data-conversion

我已经看到很多关于如何将DBF文件转换为SQL数据库的解决方案,但无论如何转换表而不重新编写引用DBF文件的程序?

例如,将DBF文件转换为SQL表,然后只使用指向SQL数据库的指针保留dbf文件?

目标是允许现有应用程序运行(直到我们迁移代码),但是将数据保存在SQL中?

3 个答案:

答案 0 :(得分:2)

我认为您不会找到一个可以从DBF上下文链接到SQL的工具,并允许您的代码无缝地通过DBF流向SQL Server,同时保持最新状态。

根据您的日常事务的复杂程度或广泛程度,我建议您设置一些定期运行的SSIS包,以保持DBF文件中的数据流向SQL表,直到您准备好提交SQL全职时间为止

另一种选择可能是朝着另一个方向前进。在SQL中为您的DBF文件设置linked serveropen rowset,然后在SQL端构建一些存储过程,使用tsql merge语句或其他查询定期合并数据你必须建立。

答案 1 :(得分:0)

应用程序使用驱动程序与数据库交互。两个数据库(DBF和任何其他数据库,例如MySQL)在它们之间没有应用程序时不能相互交互,这会告诉驱动程序该做什么。因此,您现有的应用程序可以与DBF以及SQLDatabase交互,但不能使DBF文件与SQL数据库交互 正如其他人所建议的那样,您可以将SSIS用于此目的。

答案 2 :(得分:0)

我认为你最接近的就是使用SyBase的iSQLAnywhere。他们专门挑选并集成了他们的SQL数据库,以直接识别.DBF文件。但是,正如其他人所提到的,您仍然需要创建与数据库的连接以获取数据。您可以在iSQLAnywhere中创建一个指向免费表的“数据库”,而不是嵌入到单个“数据库”中,例如其他数据库......

我已经完成了一些DBF到sql的转换,我为保持前端一致而采取的一种方法是创建一个基于.PRG的程序集。如果你的应用程序是VFP并且你有私有和默认数据会话,那么任何类都尊重表单的“数据会话”,所以如果你在“默认”数据会话下创建一个类,那么运行一个私有的表单,然后调用您的泛型类来查询并打开一个表,打开的表将在“默认”会话中被识别,而不是您的表单。

现在,这就是说,我做的另一件事是有一个函数来打开连接并分别返回true / false并允许中心位置进行调试。如果有效连接,请运行给定的sql命令。现在,如果您希望打开一个给定的“别名”名称(例如“person”表),请使用sqlexec(lcSomeCommand,“AliasYouWant”),其余大部分将用于显示和编辑。您仍然需要使用SQL Insert / Update推回更改,但使用参数化SQL传递时这非常简单。