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

Python 在脚本中从FileMaker Pro数据库提取数据的最佳方法?,python,linux,perl,scripting,filemaker,Python,Linux,Perl,Scripting,Filemaker,如果我能想出一种从FileMaker Pro数据库中自动提取有用信息的方法(最好是用Python脚本),我的工作会更容易,或者至少不会那么乏味。我在Linux机器上工作,FileMaker数据库位于运行在OSX机器上的同一局域网上。我可以从我的机器登录到webby界面 我对SQL很在行,如果有人能给我指一些FileMaker插件,让我用SQL访问FileMaker中的数据,我会很高兴。我发现的一切都是相反的:让FileMaker从SQL源获取数据。没用 这不是我的第一选择,但如果手头有Perl-

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

我对SQL很在行,如果有人能给我指一些FileMaker插件,让我用SQL访问FileMaker中的数据,我会很高兴。我发现的一切都是相反的:让FileMaker从SQL源获取数据。没用

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

注意:XML/XSLT服务(如一些人所建议的)仅在FM服务器上可用,而不是在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安装CD来获取驱动程序。详细介绍FMP 9的过程-它与7.x和8.x版本类似。6.x和更早版本完全不同,我不会费心尝试(这些早期版本中的xDBC支持最多是“最小的”)

FMP 9支持SQL-92标准语法(大部分)。请注意,与直接查询表不同,您可以使用作为排序表别名的“表引用”名称进行查询。如果数据表存储在多个文件中,则可以创建单个FMP文件,其中表引用/别名指向这些数据表。存在“undocumented feature”,其中这样一个文件中必须定义一个表,并且该表与关系图上的任何其他表“相关”(无论是哪个表),以便ODBC访问正常工作。否则,您的查询将始终不会返回任何结果

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


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

如果您学习Python,您可能会对Filemaker的Python包装感兴趣。它通过Filem提供对Filemaker数据的双向访问aker的内置XML服务。您可以在以下网站上找到有关此服务的详细信息: