我有一个扩展名为.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 的副本
gstat.exe -h
从 bin 目录运行- 从输出中获取 ODS 版本
- 在此处的表格中查找