2016-12-15 84 views
0

我们有一个运行Firebird数据库的POS系统,其余业务位于基于SQL Server的SYSPRO上。Firebird FDB链接服务器SSMS

我想在数据库之间运行查询和视图,因为两个数据库都有唯一可以匹配的键。

我是否通过链接服务器执行此操作?我已经尝试了一些链接服务器的变体,并且不断收到各种错误消息。所以这是我到目前为止有:

EXEC master.dbo.sp_addlinkedserver 
@server = N'OMNI', 
@srvproduct=N'OMNI', 
@provider=N'MSDASQL', 
@datasrc=N'C:\Omni\Company\Data\databasefile.FDB', 
@provstr=N'Driver={Firebird/InterBase(r) driver};Dbname=C:\Omni\Company\Data\databasefile.FDB;CHARSET=NONE;UID=SYSDBA;' 

我也曾尝试使用Excel和我可以使用下面的连接字符串查看数据库并查看表连接:

Provider=MSDASQL.1;Persist Security Info=True;Data Source=Omni;Extended Properties="DSN=Omni;Driver={Firebird/InterBase(r) driver};Dbname=C:\Omni\Company\Data\databasefile.FDB;CHARSET=NONE;UID=SYSDBA;";Initial Catalog=Omni 
+0

链接服务器可以是不可靠的。分布式查询(跨链接服务器)通常执行得相当糟糕。将Firebird数据复制到SQL Server数据库并完成跨数据库查询是完全有效的方法。然后你可能会发现你想把它放在一个档次,建立一个数据仓库。 –

+0

嘿,尼克。感谢您的反馈。那么复制数据库的最佳方法是什么?我会创建一个SQL Sever Agent小时任务来检查新数据吗?我的背景是,我可以构建查询,但复制,触发器和这些东西,我仍然需要学习。 ;-) –

+0

你会得到什么错误? –

回答

0

确定这里是答案(在这之后,我留下一小段头发;-))

我无法回答关于为什么这种方法有效的技术问题,但它有效。

首先,你需要安装

Firebird 2.5

然后32位驱动程序

32 Bit

然后64位驱动程序

64 Bit

然后你去你的命令提示符(管理员)。转到你安装Firebird 2.5的地方。在我的情况下,它是

C:\Program Files (x86)\Firebird\Firebird_2_5\bin\ 

然后输入:

fbguard.exe - a 

这会得到一个版本的火鸟服务器去的。

然后它是一个简单的ODBC链接设置。

如果你想链接到数据库的本地实例,不要忘了把

localhost:\Company\Data\Companydata.fdb