Лучший способ извлечь данные из базы данных FileMaker Pro в сценарии? - PullRequest
9 голосов
/ 26 августа 2008

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

Мне очень удобно работать с SQL, и если бы кто-нибудь мог указать мне на какой-нибудь плагин FileMaker, который мог бы дать мне доступ SQL к данным в FileMaker, я был бы рад как удар. Все, что я нашел, идет только по-другому: FileMaker получает данные из источников SQL. Не полезно.

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

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

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

Ответы [ 3 ]

5 голосов
/ 26 августа 2008

Прошло действительно с тех пор, как я что-то делал с FileMaker Pro, но я знаю, что у него есть возможности для подключения к ODBC (и JDBC) (однако я не знаю, как, или если, что переводит в мир Linux / Perl / Python, хотя).

В этой статье показано, как обмениваться / предоставлять свои данные FileMaker через ODBC и JDBC:
Совместное использование данных FileMaker Pro через ODBC или JDBC

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

3 голосов
/ 31 августа 2008

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

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

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

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

2 голосов
/ 09 сентября 2008

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

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

...