错误不支持文件的磁盘结构...找到11.1,支持12.0

时间:2018-04-24 14:24:06

标签: c# .net firebird

是否可以使用同一客户端连接到v2.5和v3服务器?
我正在使用Firebird .Net客户端5.11 当我打开v3数据库时,一切正常。
当我打开v2.5数据库时,我收到以下异常

  

“FirebirdSql.Data.FirebirdClient.FbException”类型的未处理异常>发生在FirebirdSql.Data.FirebirdClient.dll

中      

其他信息:文件的磁盘结构不受支持   C:\ USERS \ USER \ DOCUMENTS \ FIREBIRD DATABASES \ FIREBIRD_V2 \ MY.FDB;   发现11.1,支持12.0

修改
真实情况:
我有一台运行Firebird v2.5的服务器;
我有一台运行Firebird v3的服务器;
(我无法更改此配置;它们没有运行我的应用程序)

我需要来自C#.Net应用程序的两台服务器的数据 有没有办法使用相同的ADO .Net Provider连接到两台服务器?

2 个答案:

答案 0 :(得分:3)

这不是关于连接到不同Firebird服务器的客户端(工作正常),问题是Firebird服务器打开了不支持的数据库ODS(磁盘结构)版本。该错误意味着您尝试使用Firebird 3打开Firebird 2.1数据库(ODS 11.1).Firebird 3仅支持ODS 12,Firebird 2.5支持ODS 10 - 11.2(这是InterBase 6.0的ODS版本,Firebird 1.0,1.5,2.0 ,2.1和2.5)。

有两种选择:

  1. 在Firebird 3旁边安装Firebird 2.5,并在与默认端口不同的端口上运行它。如果要使用较旧的ODS格式的数据库,请连接到此服务器。
  2. 使用Firebird 2.5(或2.1)使用该版本的gbak工具备份数据库,并使用该版本的gbak工具在Firebird 3下恢复它。这将创建一个包含ODS 12的数据库。该数据库不能再在早期的Firebird版本
  3. 下使用

答案 1 :(得分:0)

这是因为您正在3.x firebird服务器中使用2.5.x数据库文件(fdb文件)。如果使用docker,则可以提取2.5.7版本here。然后使用命令docker run --name firebird -p 3050:3050 --mount source=data,destination=/firebird/data/ jacobalberty/firebird

启动docker

您应该将fdb文件放在/ var / lib / docker / volumes / data / _data