Сведения о вопросе

Pytdev

18:17, 18th August, 2020

Теги

python   linux   perl   scripting   filemaker    

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

Просмотров: 532   Ответов: 3

Моя работа была бы проще или, по крайней мере, менее утомительной, если бы я мог придумать автоматизированный способ (предпочтительно в сценарии Python) извлечения полезной информации из базы данных FileMaker Pro. Я работаю на машине Linux, и база данных FileMaker находится на том же самом LAN, работающем на машине 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, который принимает сокетные соединения от других систем на LAN, выполняет запросы и возвращает данные через сокетное соединение. Мне пришлось сделать это, чтобы обойти тот факт, что FM Pro принимает только ODBC соединений локально (FM сервер требуется для внешних подключений).



  Сведения об ответе

dump

01:45, 8th August, 2020

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

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

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


  Сведения об ответе

#hash

21:06, 1st October, 2020

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

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

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

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


  Сведения об ответе

9090

21:06, 1st October, 2020

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

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


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться