我正在尝试使用DBI
andodbc
包连接到 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
我的问题
- 在调用 dbConnect 连接到 Sybase 服务器时,是否应该提供额外的参数?
- 如果有,有哪些?
- 如果没有,我还做错了什么?(dsn 的工作方式如使用
RODBC
包所示。)
我试图在这里查找额外的信息,这似乎表明我可能需要额外的参数。但是我在这方面的知识有限,所以我不确定如何适应当前的情况。
sybase 数据库版本
自适应服务器企业 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