通过ODBC连接到Firebird数据库

问题描述

我正在尝试通过ODBC连接到firebird数据库我有一个正常工作的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”的继承方法

Maybe this helps? This is from the Windows ODBC Data Sources and says 32/64 Bit. Don't know if this is imprtant

还有其他想法吗?

解决方法

根据odbc已知的数据库驱动程序列表,Firebird似乎不是已知的驱动程序。

library(odbc)
odbc::odbcListDrivers()

(src:https://rdrr.io/cran/odbc/man/odbcListDrivers.html

我想您必须先install that driver on your machine然后register the Data Source Name (DSN)才能将其提供给R。
完成后,请将函数调用中的drv更改为dsndrv指的是您在上面提供的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")