我正在尝试使用 RStudio (1.0.143) 和 Filemaker Pro Advanced 15 (15.0.3.305) 创建 R (3.3.3) 之间的连接。我正在尝试使用 RODBC (1.3-15) 创建连接。
到目前为止我:
Created a toy FM Pro database for testing用户 ID:管理员
密码:密码
Followed these instructions for creating a DSN为我的玩具 FM Pro 数据库创建了一个名为 test_r 的 DSN
已成功测试与 test_r 的连接
尝试通过以下两种方式连接到 RStudio 中的 DSN 失败:
fm_connection <- odbcConnect(dsn="test_r", uid="Admin", pwd="pword")
返回以下错误:
[RODBC] ERROR: state IM002, code 0, message [unixODBC][Driver Manager]Data source name not found, and no default driver specifiedODBC connection failed
和
constr <- paste("driver={FileMaker ODBC}",
"server=127.0.0.1",
"database=test_r",
"uid=Admin",
"pwd=pword",
sep=";")
fm_connection <- odbcDriverConnect(constr)
返回以下错误:
[RODBC] ERROR: state 01000, code 0, message [unixODBC][Driver Manager]Can't open lib 'FileMaker ODBC' : file not foundODBC connection failed
However, you can see that the driver is there:
最后,我没有成功尝试使用这些(和其他)引用来解决这个问题:
https://cran.r-project.org/web/packages/RODBC/vignettes/RODBC.pdf https://community.filemaker.com/thread/165849到目前为止似乎没有任何工作。我不依赖于 RODBC,但我确实需要一个适用于Mac OS的解决方案。任何帮助不胜感激!
以下是 MacOS 的一些重要故障排除步骤。我在 R 中有同样的错误,因此我认为这很有可能是你的问题。ODBC 的设置可能相当复杂,因为涉及多个版本的多个软件组件。你已经验证了 ODBC 共享在这个特定的 FileMaker 数据库中。
验证 unixodbc 的安装:
ODBC Manager 实际上是可选的。它管理下面描述的 ini 文件。但是在安装 unixodbc 之后,您也可以在没有 ODBC Manager 的文本编辑器中编辑这些 ini 文件。
要安装 Homebrew,请执行此命令。
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
然后,安装 unixodbc。这在系统级别提供了 ODBC 连接。
brew 更新 brew 安装 unixodbc
验证驱动程序:
驱动程序应该安装在这里:
/Library/ODBC/FileMaker\ ODBC.bundle/Contents/MacOS
该文件夹将包含这两个文件:
SetupToolTemplate fmodbc.so
这是完整的驱动程序路径:
/Library/ODBC/FileMaker\ ODBC.bundle/Contents/MacOS/fmodbc.so
验证配置文件:
文件夹
/Library/ODBC
应该包含这些文件:
FileMaker ODBC.bundle odbc.ini odbcinst.ini
此外,unixodbc 应该只包含最新版本。如果您有早期版本,请删除它。现在,只有 2.3.4 存在。
/usr/local/Cellar/unixodbc/2.3.4
还包含
odbc.ini odbcinst.ini
镜像 odbc.ini 和 odbcinst.ini 文件:
如上所述,每个文件在两个不同的位置都有两个副本。确保两者的内容相等。这意味着 odbcinst.ini 的两个副本都将定义驱动程序。并且 odbc.ini 的两个副本都将包含连接。也许这不是 100% 必需的,但这是我需要做的。
用 isql 测试:
B:etc bobby$ isql -v DSNname admin pword
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
如果您在完成这些步骤后仍有任何问题,请分享其他详细信息,以便我可以更新答案。
我得到了这个工作使用 odbc 而不是 RODBC 一些新的 R 代码:
con <- DBI::dbConnect(odbc::odbc(),
driver = "/Library/ODBC/FileMaker ODBC.bundle/Contents/MacOS/FileMaker ODBC",
server = "127.0.0.1",
database = "/Users/bradcannell/Dropbox/Filemaker Pro/Notes/test_r.fmp12",
uid = "Admin",
pwd = "pword")
本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处
评论列表(24条)