【问题标题】:Converting a database from DBF to SQL without recoding无需重新编码即可将数据库从 DBF 转换为 SQL
【发布时间】:2012-10-09 20:20:02
【问题描述】:

我已经看到了许多关于如何将 DBF 文件转换为 SQL 数据库的解决方案,但无论如何,是否可以在不重新编码引用 DBF 文件的程序的情况下转换表?

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

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

【问题讨论】:

  • 如果您可以在 SQL 中再次创建表结构,您可以使用 Sql 集成服务从旧数据库迁移数据。创建 SSIS 简单易行。
  • 我们在这里讨论的是什么特定版本的 SQL 和 dbf? SQL 2008,FoxPro ???
  • 两个 SQL 版本是 TBD,当前 DBF 文件在 Xharbor 使用的 FoxPro 的一个变种中。

标签: sql dbf data-conversion


【解决方案1】:

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

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

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

【讨论】:

  • 谢谢,我担心这是选项。但是我没有详细信息,所以感谢您的指点!!
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2016-09-02
      • 2017-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-24
      • 1970-01-01
      • 1970-01-01
      • 2017-06-13
      相关资源
      最近更新 更多