Микширование библиотек R : В R большинство API соответствуют стандарту DBI, включая ROracle, RJDBC, odbc, RMySQL, RPostgreSQL, RSQLite
.К сожалению, RODBC
не соответствует этому стандарту.Ваша попытка подключения выглядит как попытка подключения DBI
с использованием объекта RMySQL::MySQL()
, который даже в DBI
не является частью строки подключения ODBC.
Обратите внимание, даже если для обоих требуетсялежащие в основе драйверов ODBC (см. # 2), RODBC
- это библиотека и реализация, отличная от odbc
.Кроме того, не связывайте определенные API, такие как RMySQL
, с попыткой общего ODBC для SQL Server.На самом деле, неясно, почему вы используете RMySQL, когда у вас есть переменная для driver.name
.Также такое значение, 'SQL Server'
- это имя драйвера ODBC для Windows, а не имя macOS или Linux.См. Ниже R ODBC соединения:
RODBC
driver.name <- "ODBC Driver 13 for SQL Server" # REQUIRES DOWNLOAD
driver.name <- "ODBC Driver 17 for SQL Server" # REQUIRES DOWNLOAD
...
con.text <- paste0("driver=", driver.name,
";database=", db.name,
";server=", host.name,
";port=", port,
";protocol=TCPIP",
";UID=", user.name,
";PWD=", pwd)
conn <- odbcDriverConnect(con.text)
odbc
conn <- dbConnect(odbc::odbc(), driver = driver.name,
server = host.name, port = port, database = db.name
uid = user.name, pwd = pwd)
# ALTERNATIVE:
conn <- dbConnect(odbc::odbc(), .connection_string = con.text)