我有一个R Shiny脚本在我的本地Windows计算机上工作正常,但是当我将它部署到shinyapps.io(这是一些类似unix)时失败。
我原来用过:
odbcConnectAccess('test.mdb')
但是在部署时,我得到了以下错误:
Unhandled error in observer: could not find function "odbcConnectAccess"
我测试了,其他RODBC功能仍然有用。所以我尝试了这个代码(基于this post,这也恰好是odbcConnectAccess()的内部返回)
uid=""
pwd=""
con =paste("Driver={Microsoft Access Driver (*.mdb)};Dbq=", file.path(getwd(),'test.mdb'), ";Uid=", uid, ";Pwd=", pwd, ";", sep = "")
conn=odbcDriverConnect(con)
同样,这可以在我的本地计算机上运行,但是当部署到ShinyApps.io时,我收到以下错误:
[RODBC] ERROR: state IM002, code 0, message [unixODBC][Driver Manager]Data source name not found, and no default driver specified
我还意外地尝试了odbcConnect(con)
,这会出现以下错误:
Warning in odbcDriverConnect("DSN=Driver={Microsoft Access Driver (*.mdb)};Dbq=/srv/connect/apps/ALC_app_v0_1/Salvage_data_FTP.mdb;Uid=;Pwd=;") :
[RODBC] ERROR: state IM012, code 0, message [unixODBC][Driver Manager]DRIVER keyword syntax error
在odbcDriverConnect()
的帮助中,它提到连接字符串的格式取决于您的ODBC,而Shinysapps.io似乎使用unixODBC,但我无法找到unixODBC希望我使用的格式,以便我可以建立连接吗?
任何人都可以帮我弄清楚如何在shinyapps.io上打开与.mdb的连接?我不确定如果我能够在shinyapps.io服务器上更改.ini文件,那么我真的希望找到正确的格式/语法来建立没有DSN的连接。< / p>
感谢您提供任何帮助或反馈!
答案 0 :(得分:0)
&#34; ...我们目前仅支持shinyapps.io上的开源数据库,但我们正在关注我们是否会收到更多关于专有数据库的请求。&#34; 来自ShinyApps-User group。 2015年10月23日
所以看起来目前答案是否定的。 [更新见下文]
很抱歉回答我自己的问题,但是我要离开它,因为我花了一段时间才找到确认信息,这可能会让其他人头疼。
[UPDATE] &#34; Andy纠正了我(在度假时),让我知道你可以使用FreeTDS驱动程序完成这项工作。我不是这方面的专家,但是如果你将代码改为这样的话:
odbcDriverConnect("driver=FreeTDS;Server=hostname;database=dbname;uid=username;pwd=password")
我们没有配置任何DSN,但您可以在此处查看有关如何执行此操作的提示: Trying to connect to an ODBC server using RODBC in ubuntu&#34;
所以看起来有可能。如果我让它工作,我会更新。