3

我正在尝试使用DBIandodbc包连接到 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   
4

0 回答 0