当前位置:首页> 正文

关于python:从脚本中从FileMaker Pro数据库提取数据的最佳方法是什么?

关于python:从脚本中从FileMaker Pro数据库提取数据的最佳方法是什么?

Best way to extract data from a FileMaker Pro database in a script?

如果我可以想出一种自动的方法(最好是使用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/


展开全文阅读

相关内容