通过 ODBC 从 SQL Server 连接到 Firebird SQL 会产生错误:“无法完成对主机“xnet://Global\FIREBIRD”的网络请求

问题描述 投票:0回答:1

我正在尝试通过集成包将数据从客户的 Firebird SQL 数据库下载到我们的 SQL Server。

在 SQL Server Management Studio 中,我右键单击目标数据库,选择“任务”>“导入数据”。作为数据源,我选择

*.Net Framework Data Provider for ODBC .*

我输入了连接字符串:

User=Yano;
Password=p@ssw0rd;
Database=MyDatabase;
DataSource=sql.example.com;
Port=3050;
Dialect=1;
Charset=NONE;
Role=;
Connection lifetime=15;
Pooling=false;
MinPoolSize=0;
MaxPoolSize=50;
Packet Size=8192;
ServerType=0;

司机:

Firebird/InterBase(r) driver

I am sure I have that driver installed,而且它是 64 位版本 - 适合我的 64 位系统。

然后,尝试继续导入向导,我收到以下错误:

ERROR [08004] [ODBC Firebird Driver]Unable to complete network request to host "xnet://Global\FIREBIRD".
ERROR [01S00] [ODBC Firebird Driver]Invalid connection string attribute
ERROR [01S00] [ODBC Firebird Driver]Invalid connection string attribute
ERROR [01S00] [ODBC Firebird Driver]Invalid connection string attribute
...

经过严格的谷歌搜索后,当客户端连接到服务器本地时,Firebird 数据库内部似乎使用了 xnet 协议。这是可疑的,因为我正在尝试远程连接。我已在连接字符串中填写了目标主机 (

DataSource=sql.example.com;
),因此我认为驱动程序没有理由尝试连接到本地计算机(不存在此类数据库)。

我的问题有两个:

  1. 为什么我会收到此特定错误?

  2. 我该如何进行这项工作? (如果合理可能的话。)

我确信连接字符串没有问题,防火墙已打开并且服务器正在运行,因为我可以轻松地使用它通过使用 Nuget 包从 C# 应用程序进行连接。

我可以用 C# 编写简单的桥来迁移数据,但似乎使用集成包会是解决此类问题的更优雅的工具。

这个答案建议使用付费第3方工具,但我强烈更喜欢解决方案没有付费第3方工具。

sql-server ssis odbc firebird
1个回答
0
投票

如果您使用 Firebird ODBC 驱动程序,则应使用

DBNAME=sql.example.com/3050:MyDatabase
(或
DBNAME=inet://sql.example.com:3050/MyDatabase
),并且您指定的大多数其他连接属性对于 ODBC 驱动程序无效。另请参阅从应用程序连接到 Firebird 以获取属性列表。

© www.soinside.com 2019 - 2024. All rights reserved.