10

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

我对 SQL 非常熟悉,如果有人可以向我指出一些 FileMaker 插件,它可以让我通过 SQL 访问 FileMaker 中的数据,我会很高兴。我发现的一切都只是另一种方式:让 FileMaker 从 SQL 源获取数据。没用处。

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

注意:XML/XSLT 服务(如一些人所建议的)仅在 FM Server 上可用,在 FM Pro 上不可用。否则,这可能是最好的解决方案。事实证明 ODBC 甚至很难开始工作。设置时,FM 的反馈绝对为零,因此您必须深入挖掘 /var/log/system.log 并解析晦涩的错误消息。

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

4

3 回答 3

6

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

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

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

于 2008-08-26T17:36:19.533 回答
4

您需要使用 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 数据。

于 2008-08-31T13:11:03.517 回答
2

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

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

于 2008-09-09T02:25:33.710 回答