在 Mac 上将 R 连接到 Filemaker Pro 15
Connect R to Filemaker Pro 15 on Mac
我正在尝试使用 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
- 用户 ID:管理员
- 密码:密码
Followed these instructions for creating a DSN
为名为 test_r
的玩具 FM Pro 数据库创建了一个 DSN
已成功测试与 test_r
的连接
尝试通过以下两种方式连接RStudio中的DSN失败:
fm_connection <- odbcConnect(dsn="test_r", uid="Admin", pwd="password")
其中returns出现以下错误:
[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)
其中returns出现以下错误:
[RODBC] ERROR: state 01000, code 0, message [unixODBC][Driver Manager]Can't open lib 'FileMaker ODBC' : file not foundODBC connection failed
不过可以看到驱动在:
最后,我尝试使用这些(和其他)参考资料来解决此问题,但没有成功:
- https://cran.r-project.org/web/packages/RODBC/vignettes/RODBC.pdf
- https://community.filemaker.com/thread/165849
到目前为止似乎没有任何效果。我与 RODBC 无关,但我确实需要一个适用于 Mac OS 的解决方案。感谢您的帮助!
以下是 MacOS 的一些重要故障排除步骤。我在 R 中遇到了同样的错误,因此我认为这很有可能是您的问题。 ODBC 的设置可能相当复杂,因为涉及多个具有多个版本的软件组件。您已验证此特定 FileMaker 数据库中的 ODBC 共享已启用。
验证您的 unixodbc 安装:
ODBC 管理器实际上是可选的。它管理下面描述的 ini 文件。但是安装unixodbc后,你也可以在没有ODBC管理器的情况下在文本编辑器中编辑这些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 |
| |
+---------------------------------------+
如果您在完成这些步骤后仍有任何问题,请分享更多详细信息,以便我更新答案。
我使用 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 = "password")
我正在尝试使用 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
- 用户 ID:管理员
- 密码:密码
Followed these instructions for creating a DSN
为名为 test_r
的玩具 FM Pro 数据库创建了一个 DSN已成功测试与 test_r
的连接尝试通过以下两种方式连接RStudio中的DSN失败:
fm_connection <- odbcConnect(dsn="test_r", uid="Admin", pwd="password")
其中returns出现以下错误:
[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)
其中returns出现以下错误:
[RODBC] ERROR: state 01000, code 0, message [unixODBC][Driver Manager]Can't open lib 'FileMaker ODBC' : file not foundODBC connection failed
不过可以看到驱动在:
最后,我尝试使用这些(和其他)参考资料来解决此问题,但没有成功:
- https://cran.r-project.org/web/packages/RODBC/vignettes/RODBC.pdf
- https://community.filemaker.com/thread/165849
到目前为止似乎没有任何效果。我与 RODBC 无关,但我确实需要一个适用于 Mac OS 的解决方案。感谢您的帮助!
以下是 MacOS 的一些重要故障排除步骤。我在 R 中遇到了同样的错误,因此我认为这很有可能是您的问题。 ODBC 的设置可能相当复杂,因为涉及多个具有多个版本的软件组件。您已验证此特定 FileMaker 数据库中的 ODBC 共享已启用。
验证您的 unixodbc 安装:
ODBC 管理器实际上是可选的。它管理下面描述的 ini 文件。但是安装unixodbc后,你也可以在没有ODBC管理器的情况下在文本编辑器中编辑这些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 |
| |
+---------------------------------------+
如果您在完成这些步骤后仍有任何问题,请分享更多详细信息,以便我更新答案。
我使用 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 = "password")