ODB C строка подключения и / или DSN в R - PullRequest
1 голос
/ 12 марта 2020

Я пытаюсь подключиться и прочитать многие сотни файлов базы данных MS Access, используя пакет "RODB C" в RStudio (32-битный). В предыдущей программе для открытия и чтения этих файлов использовался и системный файл базы данных system.mdw для указания прав пользователя, но я не могу найти ничего в документации RODB C, в которой описано, как включить этот файл в строку подключения. Вот то, что я пробовал, который преуспел в подключении к базе данных, но не смог прочитать ни одного содержимого:

files <- dir("file directory to access files", recursive=TRUE, full.names=TRUE, pattern="\\.mdb$")              

#2007 version is able to connect but can't read
dta <- odbcConnectAccess2007(files[1])
tables = sqlTables(dta)# can read all the table names in each file

  habData = sqlFetch(dta, "Streams") #can't read the table content, see error message below

> habData
[1] "42000 -1907 [Microsoft][ODBC Microsoft Access Driver] Record(s) cannot be read; no read permission on 'Streams'."
[2] "[RODBC] ERROR: Could not SQLExecDirect 'SELECT * FROM \"Streams\"'" 

#Older version is able to connect and still can't read
conn <- odbcConnect(paste("MS Access Database;DBQ=",files[4],sep = ""), uid = "Engine")
df <- sqlFetch(conn, "Streams") #can't read the table content, see error message below

У меня есть файл system.mdw, но я не знаю, как связать его с базой данных Access. Кто-нибудь делал это в R? Возможно, с другой упаковкой?

Ответы [ 2 ]

1 голос
/ 26 марта 2020

Я проанализировал строку подключения, установленную с помощью DSN панели управления windows ODB C, и использовал ее для восстановления новой строки подключения, содержащей файл system.mdw, идентификатор пользователя и пароль. Теперь я могу запустить al oop через все каталоги файлов и прочитать данные!

0 голосов
/ 19 марта 2020

Я не сделал этого в R, но в документации R для ODBCconnect говорится, что первым параметром является «DSN» (имя источника данных). Вместо того, чтобы использовать параметризованную строку подключения, как в «Более старой версии», я предлагаю начать с значка «ODB C» на панели управления Windows. Это даст вам мастера, который поможет вам заполнить все необходимые детали. Мастер сохранит информацию в реестре или в файле, и все, что вам нужно, чтобы указать ODBCconnect в R., это имя или полное местоположение созданного им DSN.

Я не предлагаю использовать ODBCconnect2007 - это выглядит как упрощенный интерфейс, который не имеет всех необходимых вам опций.

...