我正在尝试使用DBI
和odbc
软件包连接到Sybase数据库(ASE)。使用这些包连接失败。但是,当使用相同的dsn和RODBC
包时,连接确实有效。使用DBI
和odbc
导致失败的可能原因是什么?连接到Sybase服务器时,我应该提供其他参数吗? (见下文)
可重复的示例
# Attempt 1 using DBI and odbc fails
library(odbc)
library(DBI)
con <- dbConnect(
odbc::odbc(),
dsn = myDsn,
UID = myLogin,
PWD = myPassword,
Port = port
)
# Attempt 2 using RODBC succeeds
library(RODBC)
con2 <- odbcConnect(
dsn = myDsn,
uid = myLogin,
pwd = myPassword,
believeNRows = FALSE
)
使用DBI / odbc时收到的错误
Error: nanodbc/nanodbc.cpp:950: 08S01: [DataDirect][ODBC OpenAccess SDK driver][OpenAccess SDK Client]TCP/IP error, connection timed out
我的问题
RODBC
包显示。)我试图查找额外信息here,这似乎表明我可能需要额外的参数。但是我在这个领域的知识是有限的,所以我不确定如何使它适应当前的情况。
Sybase数据库版
Adaptive Server Enterprise 15.7
会话信息
R version 3.4.2 (2017-09-28)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1
Matrix products: default
locale:
[1] LC_COLLATE=Dutch_Belgium.1252 LC_CTYPE=Dutch_Belgium.1252 LC_MONETARY=Dutch_Belgium.1252 LC_NUMERIC=C LC_TIME=Dutch_Belgium.1252
attached base packages:
[1] stats graphics grDevices utils datasets tools methods base
other attached packages:
[1] RODBC_1.3-15 DBI_0.7 odbc_1.1.3
loaded via a namespace (and not attached):
[1] bit_1.1-12 compiler_3.4.2 hms_0.3 tibble_1.3.4 Rcpp_0.12.13 bit64_0.9-7 blob_1.1.0 rlang_0.1.2