如何在Python中读取Progress数据库文件.b1

时间:2013-04-22 02:46:57

标签: python progress-db

我需要从旧数据库系统导出信息。数据库是“进度”数据库,信息存储在扩展名为.b1

的文件中

将所有数据库表导出到文本文件的最简单方法是什么?

1 个答案:

答案 0 :(得分:2)

.b1文件是Progress Database的一部分,但实际上不是数据库本身。它包含“前映像”数据。它用于跟踪事务,以便数据库可以在出现错误/回滚等时撤消。该文件中的数据对您没有帮助。

您想要的是数据库文件。通常命名为.db,.d1,.d2,d3等。

然而,读取这些(二进制)文件将非常棘手。我甚至不确定它们是如何构建的。使用Progress内置工具将所有数据转储为文本文件会更容易。 Python中的一些简单程序可以轻松读取这些文本文件。如果您在系统上安装了数据库,您将找到一个目录,其中包含为数据库提供服务的程序等。您还可以找到一些实用程序。

根据操作系统和Progress的版本,它可能看起来有点不同。您可能需要进入数据管理实用程序并进入Admin =>转储数据和定义。

Progress Data Administration Screenshot

如果您查看数据定义(架构)的结果文件.df和数据本身的.d,您应该能够弄清楚它的格式。关系根本不存储在数据库中。在Progress环境中,它们基本上只存在于访问DB的应用程序中。

您还可以选择各种格式的导出数据(“文本”可能最有趣)。

如果以编程方式访问Progress环境,则编写导出单个表的小程序可能更容易。这将为“table1”创建一个以分号分隔的文件:

OUTPUT TO C:\temp\table1.txt.
FOR EACH table1 NO-LOCK:
  EXPORT DELIMITER ";" table1.
END.
OUTPUT CLOSE.