Подключиться к БД Firebird через ODBC
Я пытаюсь подключиться к базе данных firebird через ODBC. У меня есть рабочее соединение 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' для подписи '"символ"'
Есть еще идеи?
1 ответ
Проверка по списку odbc
-известные драйверы БД, 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")