如果我能想出一种自动化的方法(最好是使用 Python 脚本)从 FileMaker Pro 数据库中提取有用的信息,我的工作会更轻松,或者至少不会那么乏味。我在 Linux 计算机上工作,FileMaker 数据库位于运行在 OS X 计算机上的同一 LAN 上。我可以从我的机器登录 webby 界面。

我对 SQL 非常熟悉,如果有人可以向我推荐一些 FileMaker 插件,该插件可以让我通过 SQL 访问 FileMaker 中的数据,我会很高兴。我发现的一切都只会走向相反的方向:让 FileMaker 从 SQL 源获取数据。没有用。

这不是我的第一选择,但如果手头有 Perl-y 解决方案,我会使用 Perl 而不是 Python。

笔记:XML/XSLT 服务(如某些人建议的那样)仅在 FM Server 上可用,在 FM Pro 上不可用。否则,这可能是最好的解决方案。事实证明,ODBC 的运行极其困难。当您设置 FM 时,它的反馈绝对为零,因此您必须深入研究 /var/log/system.log 并解析晦涩的错误消息。

结论:我通过在计算机上本地运行 python 脚本来通过 ODBC 连接查询 FM 数据库来使其工作。该脚本实际上是一个 TCPServer,它接受来自 LAN 上其他系统的套接字连接,运行查询,并通过套接字连接返回数据。我必须这样做是为了绕过 FM Pro 仅接受本地 ODBC 连接(外部连接需要 FM 服务器)的事实。

有帮助吗?

解决方案

它已经是一个 真的 自从我使用 FileMaker Pro 做任何事情以来已经很长时间了,但我知道它确实具有与其建立 ODBC(和 JDBC)连接的功能(但是,我不知道如何或是否可以将其转换为 linux/不过 Perl/Python 世界)。

本文介绍如何通过 ODBC 和 JDBC 共享/公开 FileMaker 数据:
通过 ODBC 或 JDBC 共享 FileMaker Pro 数据

从那里,如果您能够创建 ODBC/JDBC 连接,您就可以根据需要查询数据。

其他提示

您需要 FileMaker Pro 安装 CD 来获取驱动程序。 这个文件 详细介绍了 FMP 9 的流程 - 版本 7.x 和 8.x 也类似。版本 6.x 及更早版本完全不同,我不会费心去尝试(以前版本中的 xDBC 支持充其量是“最少”)。

FMP 9 支持 SQL-92 标准语法(大部分)。请注意,您不是直接查询表,而是使用“表出现”名称进行查询,该名称充当各种表别名。如果数据表存储在多个文件中,则可以创建单个 FMP 文件,其中表出现/别名指向这些数据表。有一个“未记录的功能”,此类文件中还必须定义一个表,并且该表与关系图上的任何其他表(无论是哪一个)“相关”,以便 ODBC 访问正常工作。否则你的查询将永远不会返回任何结果。

该 PDF 文档详细介绍了使用 FMP 提供的 xDBC 接口的所有限制。简单查询的性能相当快,ymmv。我发现指定“LIKE”运算符的查询性能不太好。

FMP 还具有 XML/XSLT 接口,可用于通过 HTTP 连接查询 FMP 数据。它还提供了一个 PHP 类,用于在 Web 应用程序中访问和使用 FMP 数据。

如果您倾向于 Python,您可能有兴趣查看 Filemaker 的 Python Wrapper。它通过 Filemaker 的内置 XML 服务提供两种访问 Filemaker 数据的方式。您可以在以下位置找到一些非常全面的信息:

http://code.google.com/p/pyfilemaker/

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top