代码之家  ›  专栏  ›  技术社区  ›  postfuturist

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

  •  9
  • postfuturist  · 技术社区  · 16 年前

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

    我对SQL很在行,如果有人能给我指一个FileMaker插件,它可以让我对FileMaker中的数据进行SQL访问,我会非常高兴的。我找到的所有东西都是相反的:让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服务器)。

    3 回复  |  直到 15 年前
        1
  •  5
  •   Ryan Farley    16 年前

    这是一个 真的? 很长一段时间以来,我对FileMaker Pro做了些什么,但我知道它确实具有与之建立ODBC(和JDBC)连接的功能(不过,我不知道如何或如果是这样,那将转换为linux/perl/python世界)。

    本文介绍如何通过ODBC&JDBC共享/公开文件生成器数据:
    Sharing FileMaker Pro data via ODBC or JDBC

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

        2
  •  3
  •   cornwalker    16 年前

    您需要FileMaker Pro安装光盘来获取驱动程序。 This document 详细介绍了FMP9的流程-它与7.x版和8.x版相似。版本6.x和早期版本完全不同,我不必费心去尝试(这些早期版本中的xdbc支持最多是“最小的”)。

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

    PDF文档详细说明了使用xdbc接口fmp所提供的所有限制。简单查询的性能相当快,YMMV。我发现指定“like”操作符的查询的性能不如stallar。

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

        3
  •  2
  •   Bob Minteer    16 年前

    如果您的学习方向是Python,那么您可能会对检查FileMaker的Python包装器感兴趣。它通过FileMaker的内置XML服务提供对FileMaker数据的双向访问。您可以在以下网站上找到有关这方面的详细信息:

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