通过ODBC从SQL Server连接Firebird SQL报错:无法完成网络请求
问题解答
1. 错误原因
问题根源在于Firebird ODBC驱动与你使用的FirebirdClient连接字符串格式不兼容:
- 你输入的是
.NET专属的FirebirdSql.Data.FirebirdClient连接字符串格式,但ODBC驱动有独立的参数规范。其中Connection lifetime、Pooling、MinPoolSize、MaxPoolSize、Packet Size、ServerType这些属性都是ODBC驱动不识别的,直接触发「Invalid connection string attribute」错误。 - 当驱动解析到大量无效属性时,会忽略
DataSource、Port这类有效远程连接参数,最终 fallback 到Firebird本地默认的xnet协议连接,导致出现「Unable to complete network request to host 'xnet://Global\FIREBIRD'」的错误。
2. 免费解决方案
方案一:改用ODBC兼容的连接字符串
替换原连接字符串为Firebird ODBC驱动支持的格式,移除无效属性,调整远程连接参数写法:
DRIVER=Firebird/InterBase(r) driver; UID=Yano; PWD=p@ssw0rd; DBNAME=sql.example.com/3050:MyDatabase; CHARSET=NONE; DIALECT=1
关键调整:
- 用
DBNAME统一指定远程地址、端口和数据库,格式为host/port:database - 用ODBC标准参数名
UID/PWD替代User/Password - 删除所有ODBC驱动不支持的属性(Connection lifetime、Pooling等)
方案二:通过ODBC数据源管理器配置DSN
- 打开64位ODBC数据源管理器(与你的系统/SSMS位数匹配)
- 切换到「系统DSN」标签,点击「添加」,选择
Firebird/InterBase(r) driver - 在配置界面填写:
- 数据库路径/名称:
sql.example.com/3050:MyDatabase - 用户:Yano
- 密码:p@ssw0rd
- 字符集:NONE
- SQL方言:1
- 数据库路径/名称:
- 点击「测试连接」,确认成功后保存DSN
- 在SSMS导入向导中,数据源选择「ODBC数据源」,直接选中你创建的DSN即可
方案三:更新Firebird ODBC驱动
如果以上方法无效,安装Firebird官方提供的最新ODBC驱动,旧版本可能存在参数解析的兼容性bug,更新后可解决部分异常。
内容的提问来源于stack exchange,提问作者Yano_of_Queenscastle
相关产品推荐
相关产品推荐

