问题描述
我正在尝试通过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连接来访问数据库。无论如何,对不起我的初学者公式!
> 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”的继承方法
还有其他想法吗?
解决方法
根据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
更改为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")