2008-08-26 74 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/

相關問題