Подключиться к БД 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' для подписи '"символ"'

Может это поможет? Это из источников данных Windows ODBC и говорит, что 32/64 бит. Не знаю, важно ли это

Есть еще идеи?

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")   
Другие вопросы по тегам