在脚本中从FileMaker Pro数据库提取数据的最佳方法?

时间:2020-03-05 18:43:26  来源:igfitidea点击:

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

我对SQL非常方便,如果有人可以将我指向一些FileMaker插件,该插件可以使我对FileMaker中的数据进行SQL访问,那么我会很高兴。我发现的所有内容都只不过是另一种方式:让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服务器)这一事实。

解决方案

回答

自从我使用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包装器。它通过Filemaker的内置XML服务提供了两种访问Filemaker数据的方式。我们可以在以下位置找到一些非常详尽的信息:

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