是否可以使用同一客户端连接到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连接到两台服务器?
答案 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)。
有两种选择:
gbak
工具备份数据库,并使用该版本的gbak
工具在Firebird 3下恢复它。这将创建一个包含ODS 12的数据库。该数据库不能再在早期的Firebird版本答案 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
您应该将fdb文件放在/ var / lib / docker / volumes / data / _data
下