r - 在 Mac 上将 R 连接到 Filemaker Pro 15

标签 r macos rstudio filemaker rodbc

我正在尝试使用 RStudio (1.0.143) 在 R (3.3.3) 和 Filemaker Pro Advanced 15 (15.0.3.305) 之间建立连接。我正在尝试使用 RODBC (1.3-15) 创建连接。

到目前为止我:

Created a toy FM Pro database for testing

  • 用户名:管理员
  • 密码:密码

Followed these instructions for creating a DSN

为我的名为 test_r 的玩具 FM Pro 数据库创建了一个 DSN

enter image description here

成功测试到 test_r 的连接

enter image description here

尝试通过以下两种方式连接RStudio中的DSN失败:

fm_connection <- odbcConnect(dsn="test_r", uid="Admin", pwd="password")

返回以下错误:

[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=password",
               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

但是,您可以看到驱动程序在那里:enter image description here

最后,我尝试使用这些(和其他)引用来解决这个问题,但没有成功:

  1. https://cran.r-project.org/web/packages/RODBC/vignettes/RODBC.pdf
  2. https://community.filemaker.com/thread/165849

到目前为止似乎没有任何效果。我与 RODBC 无关,但我确实需要适用于 Mac OS 的解决方案。感谢您的帮助!

最佳答案

以下是 MacOS 的一些重要故障排除步骤。我在 R 中遇到了同样的错误,因此我认为这很有可能是您的问题。 ODBC 的设置可能相当复杂,因为涉及多个具有多个版本的软件组件。您已验证 ODBC 共享已在此特定 FileMaker 数据库中打开。

验证您的 unixodbc 安装:

ODBC 管理器实际上是可选的。它管理下面描述的 ini 文件。但是安装unixodbc后,你也可以在没有ODBC Manager的情况下在文本编辑器中编辑这些ini文件。

要安装 Homebrew,请执行此命令。

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

然后,安装unixodbc。这提供了系统级别的 ODBC 连接。

酿造更新 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 password
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+

如果您在完成这些步骤后仍有任何问题,请分享更多详细信息,以便我更新答案。

关于r - 在 Mac 上将 R 连接到 Filemaker Pro 15,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43700690/

相关文章:

macos - python 2.7 for mac 中 win32gui 的替代品是什么

r - 如何在 rmakdown Rmd 文件中包含摘要

r - 可以 Rmarkdown 有一个不工作的代码,编织 html 输出显示错误和警告

r - ggplot2 - 具有单独图例的facet_wrap

r - 创建一个新变量,仅当满足 R 中的条件时才打印一系列列中的第一个值

cocoa - 以编程方式更改 Mac 显示屏亮度

python - 如何在 Rstudio 中调试 TensorFlow?

r - 如何递归合并列表列表的相应元素

用 R 删除列表中的空零长度行

macos - 如何在本地主机上设置 SSL