Die beste Methode zum Extrahieren von Daten aus einer FileMaker Pro-Datenbank in einem Skript?

8

Mein Job wäre einfacher oder zumindest weniger mühsam, wenn ich einen automatisierten Weg (vorzugsweise in einem Python-Skript) finden könnte, um nützliche Informationen aus einer FileMaker Pro-Datenbank zu extrahieren. Ich arbeite an einem Linux-Rechner und die FileMaker-Datenbank befindet sich im selben LAN, der auf einem OS X-Rechner läuft. Ich kann mich von meinem Computer aus in die Webby-Schnittstelle einloggen.

Ich bin ziemlich praktisch mit SQL, und wenn jemand mich auf ein FileMaker-Plug-in verweisen könnte, das mir SQL-Zugriff auf die Daten in FileMaker geben könnte, würde ich mich freuen, wenn es um Punch geht. Alles, was ich gefunden habe, geht nur in die andere Richtung: Mit FileMaker Daten aus SQL-Quellen holen. Nicht nützlich.

Es ist nicht meine erste Wahl, aber ich würde Perl anstelle von Python verwenden, wenn eine Perl-y-Lösung zur Hand ist.

Hinweis : XML / XSLT-Dienste (wie von einigen Leuten vorgeschlagen) sind nur auf dem FM-Server verfügbar, nicht auf FM Pro. Sonst wäre das wahrscheinlich die beste Lösung. ODBC erweist sich als extrem schwierig, überhaupt zu arbeiten. Es gibt absolut keine Rückmeldung von FM, wenn Sie es einrichten, also müssen Sie durch /var/log/system.log graben und obskure Fehlermeldungen analysieren.

Fazit : Ich habe es geschafft, indem ich ein Python-Skript lokal auf dem Rechner ausgeführt habe, der die FM-Datenbank über die ODBC-Verbindungen abfragt. Das Skript ist eigentlich ein TCPServer, der Socket-Verbindungen von anderen Systemen im LAN akzeptiert, die Abfragen ausführt und die Daten über die Socket-Verbindung zurückgibt. Ich musste dies tun, um die Tatsache zu umgehen, dass FM Pro nur ODBC-Verbindungen lokal akzeptiert (FM-Server ist für externe Verbindungen erforderlich).

    
postfuturist 26.08.2008, 17:20
quelle

3 Antworten

5

Es war lange Zeit ein wirklich seit ich alles mit FileMaker Pro gemacht habe, aber ich weiß, dass es Fähigkeiten für eine ODBC- (und JDBC-) Verbindung hat, die man damit machen kann (ich allerdings weiß nicht wie, oder wenn, das übersetzt in die Linux / Perl / Python Welt obwohl).

Dieser Artikel zeigt, wie Sie Ihre FileMaker-Daten über ODBC & amp; JDBC:
FileMaker Pro-Daten über ODBC oder JDBC freigeben

Wenn Sie von dort eine ODBC / JDBC-Verbindung erstellen können, können Sie die Daten nach Bedarf abfragen.

    
Ryan Farley 26.08.2008, 17:36
quelle
3

Sie benötigen die FileMaker Pro-Installations-CD, um die Treiber zu erhalten. In diesem Dokument wird der Prozess für FMP 9 detailliert beschrieben - ähnlich wie in den Versionen 7.x und 8.x Gut. Versionen 6.x und früher sind völlig unterschiedlich und ich würde es nicht versuchen (xDBC-Unterstützung in diesen früheren Versionen ist bestenfalls "minimal").

FMP 9 unterstützt die SQL-92 Standardsyntax (meistens). Beachten Sie, dass Sie die Tabellen nicht direkt abfragen, sondern den Namen "Tabellenvorkommen" verwenden, der als Tabellenalias für Sortierungen dient. Wenn die Datentabellen in mehreren Dateien gespeichert sind, kann eine einzelne FMP-Datei mit Tabellenvorkommen / -aliasnamen erstellt werden, die auf diese Datentabellen verweisen. Es gibt eine "undokumentierte Funktion", bei der eine solche Datei ebenfalls eine Tabelle definieren muss und diese Tabelle mit jeder anderen Tabelle im Beziehungsdiagramm (egal welche) für den ODBC-Zugriff "verwandt" ist. Andernfalls geben Ihre Abfragen immer keine Ergebnisse zurück.

Das PDF-Dokument beschreibt alle Einschränkungen der Verwendung der von FMP bereitgestellten xDBC-Schnittstelle. Die Leistung von einfachen Abfragen ist ziemlich schnell, ymmv. Ich habe festgestellt, dass die Leistung von Abfragen, die den "LIKE" -Operator angeben, weniger als stellar ist.

FMP verfügt auch über eine XML / XSLT-Schnittstelle, mit der Sie FMP-Daten über eine HTTP-Verbindung abfragen können. Es bietet auch eine PHP-Klasse für den Zugriff auf und die Verwendung von FMP-Daten in Web-Anwendungen.

    
cornwalker 31.08.2008 13:11
quelle
2

Wenn Sie an Python angelehnt sind, könnten Sie den Python-Wrapper für Filemaker ausprobieren. Es bietet einen Zwei-Wege-Zugriff auf die Filemaker-Daten über die integrierten XML-Dienste von Filemaker. Sie können einige ziemlich ausführliche Informationen dazu finden unter:

Ссылка

    
Bob Minteer 09.09.2008 02:25
quelle