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

2024-05-15 20:34:31 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

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

注意:XML/XSLT服务(如一些人建议的那样)仅在FM服务器上可用,而不是FM Pro。否则,这可能是最好的解决办法。事实证明,ODBC甚至很难工作。当您设置FM时,它绝对没有任何反馈,因此您必须深入/var/log/system.log并解析不清楚的错误消息。

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


Tags: 数据服务器脚本机器log信息数据库sql
3条回答

如果您倾向于使用Python,那么您可能会对检查Filemaker的Python包装器感兴趣。它通过Filemaker的内置XML服务提供对Filemaker数据的双向访问。你可以在以下网站上找到一些非常详尽的信息:

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

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

本文演示如何通过ODBC&JDBC共享/公开FileMaker数据:
Sharing FileMaker Pro data via ODBC or JDBC

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

您需要FileMaker Pro安装光盘来获取驱动程序。This document详细介绍了FMP 9的过程,它与版本7.x和8.x也类似。版本6.x和更早的版本完全不同,我不会费心去尝试(那些先前版本中的xDBC支持最多是“最小的”)。

FMP 9主要支持SQL-92标准语法。注意,不是直接查询表,而是使用作为排序表别名的“表引用”名称进行查询。如果数据表存储在多个文件中,则可以创建一个FMP文件,其中的表引用/别名指向这些数据表。有一个“未记录的特性”,其中这样一个文件必须在其中定义一个表,并且该表与关系图上的任何其他表“相关”(不管是哪个表),以便ODBC访问工作。否则查询将始终不返回任何结果。

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

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

相关问题 更多 >