【发布时间】:2019-02-12 18:14:06
【问题描述】:
我构建了一个闪亮的应用程序,它使用 odbc 库从托管在公共服务器中的服务器获取数据并显示结果输出。在Win10下完美运行。
我正在使用以下代码连接到服务器:
library(odbc)
con <- dbConnect(odbc(),
Driver = "SQL Server Native Client 11.0",
Server = "****",
Database = "****",
UID = "****",
PWD = "****")
当我在 www.shinyapps.io 中托管该应用程序时,它无法正常工作。它显示错误如下:
Warning: Error in : nanodbc/nanodbc.cpp:950: 01000: [unixODBC][Driver Manager]Can't open lib 'SQL Server Native Client 11.0' : file not found
我不明白为什么它说“找不到文件”?当我使用 PC 上的 rstudio 运行应用程序时,该应用程序运行良好。
请帮忙。 提前致谢。
苏曼塔
【问题讨论】:
-
错误信息非常清楚,您的计算机上安装了 SQL 服务器驱动程序,但 Shinyapps 站点上没有。如果您有 root 访问权限,请安装驱动程序并配置
odbc.ini文件。如果您没有 root 访问权限,我建议您建立 JDBC 连接并为您的应用提供 jar 文件。 -
您必须使用 RODBC 包,因为它安装在 shinyapp.io 服务器上。请参阅here 了解更多信息
-
@AlexanderLeow,我已将代码更新如下
library(RODBC); con <- odbcDriverConnect('driver={SQL Server}; server=****; database=****; Uid=****; Pwd=****; ')它在我的电脑上运行良好,但从shinyapps 我收到以下错误:[RODBC] ERROR: state 01000, code 0, message [unixODBC][Driver Manager]Can't open lib 'SQL Server' : file not found这次我使用的是'SQL服务器的驱动程序,但没有成功。