【发布时间】:2012-04-02 07:45:45
【问题描述】:
我有一个扩展名为 .ib 的文件。我猜它是 Interbase 或 Firebird 文件,但我无法确定到底是哪个文件。此外,尚不清楚使用 Interbase(或 Firebird)的哪个版本来创建文件。
到目前为止我发现了什么:
我尝试了各种不同的软件来读取这个文件(FlameRobin、Firebird 的 isql.exe 以及最新版本的 Interbase),我收到的错误消息告诉我 ODS(“磁盘结构”)是第 9 版。相当古老,可以追溯到 Firebird 从 Interbase 分叉的时候。
我已经设法连接到数据库并使用 Firebird 查询它,但我遇到的一些错误让我相信它实际上是一个 Interbase 数据库(如果需要,我可以进一步解释)
有没有一种万无一失的方法来确定准确我正在处理哪种数据库?即它是 Interbase 还是 Firebird 文件,如果是,它是用哪个版本编写的?
编辑:
gstat.exe -h 的输出使用 Firebird 2.5 运行:
Database header page information:
Flags 0
Checksum 12345
Generation 7558
Page size 4096
ODS version 9.1
Oldest transaction 7506
Oldest active 7544
Oldest snapshot 7544
Next transaction 7549
Bumped transaction 1
Sequence number 0
Next attachment ID 5
Implementation ID 16
Shadow count 0
Page buffers 0
Next header page 0
Database dialect 1
Attributes force write
Variable header data:
Sweep interval: 20000
*END*
总结一下:
- 获取 Firebird 的副本
- 从 bin 目录运行
gstat.exe -h - 从输出中获取 ODS 版本
- 在table here 中查找
【问题讨论】:
-
您能否详细说明您遇到的错误?另外,您使用哪个数据库引擎连接到数据库?您是否使用方言 1 连接到它?
-
ODS对应Interbase 5.5或5.6。
-
澄清一下,它不可能是 Firebird 1.0 或 1.5(两者的“次要版本”都是 9.1)
-
@GuillemVicens 我正在连接 Firebird2.5 isql.exe。当我尝试与 FlameRobin 连接时,我得到“不支持的服务器:错误的 ODS 版本 (9),至少需要 '10'”
-
@EMBarbosa 我添加了 Delphi 标签,因为我知道 Firebird 主要在 Delphi 社区中使用,并且我认为如果我添加 Delphi 标签,我将有更好的机会获得答案。现在我有了答案,我将删除标签。