Лучший способ извлечь данные из базы данных FileMaker Pro с помощью скрипта?

StackOverflow https://stackoverflow.com/questions/28668

Вопрос

Моя работа была бы проще или, по крайней мере, менее утомительной, если бы я мог придумать автоматизированный способ (предпочтительно в скрипте Python) извлечения полезной информации из базы данных FileMaker Pro.Я работаю на компьютере с Linux, и база данных FileMaker находится в той же локальной сети, что и на компьютере с OS X.Я могу войти в веб-интерфейс со своего компьютера.

Я довольно хорошо разбираюсь в SQL, и если бы кто-нибудь мог указать мне на какой-нибудь подключаемый модуль FileMaker, который мог бы предоставить мне SQL-доступ к данным внутри FileMaker, я был бы так же рад.Все, что я нашел, ведет только в другую сторону:Использование FileMaker для получения данных из источников SQL.Бесполезно.

Это не мой первый выбор, но я бы использовал Perl вместо Python, если бы под рукой было решение на Perl-y.

Примечание:Службы XML / XSLT (как предлагают некоторые пользователи) доступны только на FM Server, а не на FM Pro.В противном случае это, вероятно, было бы лучшим решением.ODBC оказывается чрезвычайно сложным даже для того, чтобы заставить его работать.При настройке FM нет абсолютно никакой обратной связи, поэтому вам приходится копаться в /var/log/system.log и анализировать непонятные сообщения об ошибках.

Заключение:Я заставил это работать, запустив скрипт python локально на компьютере, который запрашивает базу данных FM через ODBC-соединения.Скрипт на самом деле представляет собой TCPServer, который принимает сокет-соединения от других систем в локальной сети, выполняет запросы и возвращает данные через сокет-соединение.Мне пришлось сделать это, чтобы обойти тот факт, что FM Pro принимает ODBC-соединения только локально (FM-сервер требуется для внешних подключений).

Это было полезно?

Решение

Это был настоящий в самом деле прошло много времени с тех пор, как я что-либо делал с FileMaker Pro, но я знаю, что у него есть возможности для подключения к нему ODBC (и JDBC) (однако я не знаю, как и если это применимо к миру linux / perl / python).

В этой статье показано, как предоставить общий доступ к вашим данным FileMaker через ODBC и JDBC:
Общий доступ к данным FileMaker Pro через ODBC или JDBC

Оттуда, если вы сможете создать соединение ODBC / JDBC, вы сможете запрашивать данные по мере необходимости.

Другие советы

Для получения драйверов вам понадобится установочный компакт-диск FileMaker Pro. Этот документ подробно описан процесс для FMP 9 - он аналогичен и для версий 7.x и 8.x.Версии 6.x и более ранние совершенно разные, и я бы не стал утруждать себя попытками (поддержка xDBC в этих предыдущих версиях в лучшем случае "минимальна").

FMP 9 поддерживает стандартный синтаксис SQL-92 (в основном).Обратите внимание, что вместо прямого запроса таблиц вы выполняете запрос, используя имя "вхождение таблицы", которое служит своего рода псевдонимом таблицы.Если таблицы данных хранятся в нескольких файлах, можно создать один файл FMP с вхождениями таблиц / псевдонимами, указывающими на эти таблицы данных.Существует "недокументированная функция", при которой в таком файле также должна быть определена таблица, и эта таблица "связана" с любой другой таблицей на графике связей (не имеет значения, с какой именно), чтобы доступ ODBC работал.В противном случае ваши запросы всегда будут возвращать никаких результатов.

В документе PDF подробно описаны все ограничения, связанные с использованием интерфейса xDBC, предоставляемого FMP.Выполнение простых запросов достаточно быстрое, ymmv.Я обнаружил, что производительность запросов, указывающих оператор "LIKE", ниже звездной.

FMP также имеет интерфейс XML / XSLT, который вы можете использовать для запроса данных FMP через HTTP-соединение.Он также предоставляет класс PHP для доступа к данным FMP и их использования в веб-приложениях.

Если вы склоняетесь к Python, вам может быть интересно ознакомиться с оболочкой Python для Filemaker.Он обеспечивает двусторонний доступ к данным Filemaker через встроенные XML-сервисы Filemaker.Вы можете найти довольно подробную информацию по этому вопросу по адресу:

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top