首页 > 解决方案 > 通过 ODBC 连接到 Firebird DB

问题描述

我正在尝试通过 ODBC 连接到 firebird DB。我有一个有效的 ODBC Windows 连接(ODBC 数据源 32 位),并且还通过 Tableau 建立了连接。我尝试使用 dbConnect 但无法设置我猜的正确参数。我试过了

library(odbc)
con <- dbConnect(odbc::odbc(),
                 drv = "Firebird/InterBase(r) driver",
                 database = "VARIO",
                 uid = "xxx",
                 pwd = "xxx",
                 host = "192.xxx.xxx.xx",
                 port = "xxxxx")    

在例如 Excel 中,我可以使用已建立的 Windows 连接访问数据库。无论如何,对不起我的初学者配方!

在这里添加,看来我在 64 位 R 版本上运行

> Sys.info()[["machine"]]
[1] "x86-64"

在您发表评论后,我尝试了

con <- dbConnect(odbc::odbc(),
                 dsn = "VARIO",
                 database = "192.168.XX.X/56300:VARIO8",
                 uid = "XXX",
                 pwd = "XXX",
                 host = "192.168.XX.X",
                 port = "56300")

>Error: nanodbc/nanodbc.cpp:983: 01S00: [ODBC Firebird Driver]Unable to connect to data source: library 'C:\Users\XXX\Desktop\fbclient.dll' failed to load  [ODBC Firebird Driver]Invalid connection string attribute  [ODBC Firebird Driver]Invalid connection string attribute 

fbclient.dll 在它应该在的地方

更何况我没有放司机。每当我广告

drv = "Firebird/InterBase(r) driver"

我得到:(函数(类,fdef,mtable)中的错误:无法为签名'“字符”'找到函数'dbConnect'的继承方法</p>

也许这有帮助?这来自 Windows ODBC 数据源,显示为 32/64 位。不知道这是否重要

还有什么想法吗?

标签: rodbcfirebirddbconnect

解决方案


检查odbc-known DB 驱动程序列表,Firebird 似乎不是已知驱动程序。

library(odbc)
odbc::odbcListDrivers()

(来源:https ://rdrr.io/cran/odbc/man/odbcListDrivers.html )

我猜您必须在您的机器上安装该驱动程序,然后注册数据源名称 (DSN)以使其对 R 可用。
完成后,请将drv您的函数调用中的dsn. drv指的是odbc::odbc()您在上面提供的参数,而dsn应该通过其注册名称来引用已安装的驱动程序(除非我在这里把事情搞砸了。幸运的是,我从来没有离开过RPostgreSQL......的温暖舒适) .

所以它看起来像这样:

library(odbc)
con <- dbConnect(drv = odbc::odbc(),
                 dsn = "Firebird", # this should be the DSN you have set
                 database = "VARIO",
                 uid = "xxx",
                 pwd = "xxx",
                 host = "192.xxx.xxx.xx",
                 port = "xxxxx")   

推荐阅读