希尼亚普斯的RODBC。连接到Access数据库(.mdb)时出错

希尼亚普斯的RODBC。连接到Access数据库(.mdb)时出错,r,shiny,rodbc,unixodbc,R,Shiny,Rodbc,Unixodbc,我有一个R脚本,它在本地windows计算机上运行良好,但在我将其部署到shinyapps.io(类似于unix)时失败 我最初使用: odbcConnectAccess('test.mdb')但是在部署时,我得到以下错误: Warning in odbcDriverConnect("DSN=Driver={Microsoft Access Driver (*.mdb)};Dbq=/srv/connect/apps/ALC_app_v0_1/Salvage_data_FTP.mdb;Uid=;P

我有一个R脚本,它在本地windows计算机上运行良好,但在我将其部署到shinyapps.io(类似于unix)时失败

我最初使用:
odbcConnectAccess('test.mdb')
但是在部署时,我得到以下错误:

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
观察者中未处理的错误:找不到函数“odbcConnectAccess”

我已经测试过了,其他RODBC函数仍然可以工作。所以我尝试了这段代码(基于,这也是odbcConnectAccess()的内部返回的内容)

同样,这可以在我的本地机器上运行,但是当部署到ShinyApps.io时,我得到以下错误:

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
[RODBC]错误:状态IM002,代码0,消息[unixODBC][Driver Manager]未找到数据源名称,并且未指定默认驱动程序

我还无意中尝试了
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的连接

感谢您的帮助或反馈

“…我们目前只支持shinyapps.io上的开源数据库,但我们正在关注是否会收到更多对专有数据库的请求。” 从…起2015年10月23日

所以现在看来答案是否定的。[更新见下文]

很抱歉回答我自己的问题,但我将把它放在一边,因为我花了一段时间才找到确认书,这可以让其他人省去一些头痛

[更新] “Andy纠正了我(在度假期间)的错误,并告诉我您可以通过使用FreeTDS驱动程序来实现这一点。我不是这方面的专家,但如果您将代码更改为以下内容:

odbcDriverConnect("driver=FreeTDS;Server=hostname;database=dbname;uid=username;pwd=password")
我们没有配置任何DSN,但您可以在此处看到有关如何配置DSN的提示: "

看来这是可能的。如果我让它工作起来,我会更新。

“……我们目前只支持shinyapps.io上的开源数据库,但我们正在观察是否会收到更多对专有数据库的请求。” 从…起2015年10月23日

所以现在看来答案是否定的。[更新见下文]

很抱歉回答我自己的问题,但我将把它放在一边,因为我花了一段时间才找到确认书,这可以让其他人省去一些头痛

[更新] “Andy纠正了我(在度假期间)的错误,并告诉我您可以通过使用FreeTDS驱动程序来实现这一点。我不是这方面的专家,但如果您将代码更改为以下内容:

odbcDriverConnect("driver=FreeTDS;Server=hostname;database=dbname;uid=username;pwd=password")
我们没有配置任何DSN,但您可以在此处看到有关如何配置DSN的提示: "


看来这是可能的。我将更新,如果我让它工作。< /P>因为MS Access JET/ACE是一个文件级数据库引擎,考虑它的开源文件级对应项SQLite,它应该保持您的工作流完好无损。它是轻量级的,在资源或安装上不太重,并且可以将数据库保持在单个文件中,没有服务器级企业解决方案,如MySQL、SQL Server、PostgreSQL、DB2、Oracle。因为MS Access Jet/ACE是文件级数据库引擎,所以考虑其开源文件级对应项SQLite,这将使您的工作流程保持完整。它是轻量级的,不需要太多的资源或安装,您可以将数据库保持在单个文件中,没有像MySQL、SQL server、PostgreSQL、DB2和Oracle这样的服务器级企业解决方案。