我有一个扩展名为.ib
的文件。我猜这是一个 Interbase 或一个 Firebird 文件,但我确实无法确定哪个。此外,我们还不清楚使用Interbase(或Firebird)的版本来创建文件。
到目前为止我发现了什么:
我尝试过各种不同的软件来读取这个文件(FlameRobin,Firebird的isql.exe以及Interbase的最新版本),我收到的错误消息告诉我ODS(" On Disk Structure& #34;)是版本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*
总结:
gstat.exe -h
答案 0 :(得分:12)
答案 1 :(得分:1)
从我对使用Dialect的评论的答案中,我猜想FlameRobin在连接到数据库时正在使用Dialect 3,这是新数据库的默认方言阅读Dialect以获取有关此问题的更多信息。另一方面,方言1是旧数据库的默认值(早于IB 6.0)。
在iSQL中,您可以使用以下句子来确保您使用Dialect 1.当您启动iSQL时:isql -sql_dialect n
或在iSQL会话中:
SET SQL DIALECT n;
有关iSQL和方言here的更多信息。
如果这不起作用,那么最好的方法是获得一些旧的Interbase 5.0安装,执行gbak并使用Firebird 2.5安装恢复数据库。
您也可以尝试询问Firebird mailing lists。其中一个专注于Interbase数据库转换。
编辑:正如@mghie所述,FlameRobin的问题可能是因为它在10之前不支持ODS。
HTH
答案 2 :(得分:0)
您可以使用FBConvert实用程序将数据库转换为最新的Firebird 2.5格式。