У меня есть сценарий R Shiny, который отлично работает на моем локальном компьютере Windows, но не удается, когда я его разворачиваю на shinyapps.io (что-то вроде unix like).RODBC на shinyapps. Ошибка подключения к базе данных Access (.mdb)
Первоначально я использовал: odbcConnectAccess('test.mdb')
, но при развертывании, я получаю ошибку follwing:
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 хочет, чтобы я использовал, чтобы установить соединение?
Может ли кто-нибудь помочь мне выяснить, как открыть соединение с .mdb на shinyapps.io? Я не уверен. Если я смогу изменить файлы .ini на сервере shinyapps.io, так что я действительно надеюсь найти правильный формат/синтаксис, чтобы установить соединение без DSN.
Спасибо за любую помощь или обратную связь!
Поскольку MS Access Jet/ACE - это механизм базы данных на уровне файлов, рассмотрите его параллельную версию с открытым исходным кодом SQLite, которая должна поддерживать целостность вашего рабочего процесса. Он легкий и не слишком тяжелый на ресурсах или устанавливает, и вы можете хранить базы данных по-прежнему в отдельных файлах, а не на уровне сервера, например, в MySQL, SQL Server, PostgreSQL, DB2, Oracle. – Parfait