2008-08-26 73 views
8

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

我对SQL非常得心应手,如果有人能指点我一些FileMaker插件,它可以让我在FileMaker中对数据进行SQL访问,那么我会很高兴。我发现的所有东西都只有另一种方式:让FileMaker从SQL源获取数据。没有用。

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

注意:XML/XSLT服务(如某些人所建议的)仅在FM服务器上可用,而不在FM Pro上可用。否则,这可能是最好的解决方案。 ODBC甚至变得非常难以工作。 FM设置时绝对没有来自FM的反馈,因此您必须深入挖掘/var/log/system.log并解析隐含的错误消息。

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

回答

5

以来,它一直我与FileMaker Pro中的任何一个真的很长一段时间,但我知道,它确实有能力为ODBC(和JDBC)连接到它(到做出但是,我不知道如何,或者如果,转化为linux/perl/python世界)。

本文介绍如何共享/通过ODBC暴露你的FileMaker数据& JDBC:
Sharing FileMaker Pro data via ODBC or JDBC

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

3

您需要使用FileMaker Pro安装光盘来获取驱动程序。 This document详细介绍了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数据。

2

如果您倾向于Python,那么您可能有兴趣检查Filemaker的Python Wrapper。它通过Filemaker的内置XML服务提供对Filemaker数据的双向访问。你可以在这里找到一些相当全面的信息:

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

相关问题