2008-08-26 27 views
8

Mi trabajo sería más fácil, o al menos menos tedioso si pudiera encontrar una forma automática (preferiblemente en un script de Python) para extraer información útil de una base de datos de FileMaker Pro. Estoy trabajando en una máquina Linux y la base de datos de FileMaker está en la misma LAN ejecutándose en una máquina OS X. Puedo iniciar sesión en la interfaz webby desde mi máquina.¿La mejor manera de extraer datos de una base de datos de FileMaker Pro en un script?

Soy bastante útil con SQL, y si alguien pudiera indicarme algún complemento de FileMaker que podría darme acceso SQL a los datos en FileMaker, estaría encantado. Todo lo que he encontrado va en la otra dirección: tener FileMaker para obtener datos de fuentes SQL. Inútil.

No es mi primera opción, pero usaría Perl en lugar de Python si hubiera una solución de Perl-y disponible.

Nota: los servicios XML/XSLT (como lo sugieren algunos) solo están disponibles en el servidor FM, no en el FM Pro. De lo contrario, esa sería probablemente la mejor solución. ODBC se está volviendo extremadamente difícil incluso de funcionar. Hay absolutamente cero comentarios de FM cuando lo configura, por lo que debe buscar en /var/log/system.log y analizar mensajes de error poco claros.

Conclusión: Lo he conseguido ejecutando un script python localmente en la máquina que consulta la base de datos FM a través de las conexiones ODBC. El script es en realidad un servidor TCPS que acepta conexiones de socket desde otros sistemas en la LAN, ejecuta las consultas y devuelve los datos a través de la conexión de socket. Tuve que hacer esto para eludir el hecho de que FM Pro solo acepta conexiones ODBC localmente (se requiere un servidor FM para las conexiones externas).

Respuesta

5

Ha sido un realmente largo tiempo desde que hice algo con FileMaker Pro, pero sé que tiene capacidades para una conexión ODBC (y JDBC) que se le haga (sin embargo, no sé cómo, o si, eso se traduce al mundo de linux/perl/python).

En este artículo se muestra cómo compartir/exponer los datos de FileMaker a través de ODBC & JDBC:
Sharing FileMaker Pro data via ODBC or JDBC

A partir de ahí, si usted es capaz de crear una conexión ODBC/JDBC se podía consultar a cabo datos según sea necesario.

3

Necesitará el CD de instalación de FileMaker Pro para obtener los controladores. This document detalla el proceso para FMP 9 - es similar para las versiones 7.xy 8.x también. Las versiones 6.xy anteriores son completamente diferentes y no me molestaría en intentarlo (el soporte de xDBC en esas versiones anteriores es "mínimo" en el mejor de los casos).

FMP 9 admite la sintaxis estándar SQL-92 (principalmente). Tenga en cuenta que en lugar de consultar tablas directamente, consulta utilizando el nombre de "aparición de tabla" que sirve como un alias de tabla de géneros. Si las tablas de datos se almacenan en varios archivos, es posible crear un solo archivo FMP con apariciones/alias de tabla que apunten a esas tablas de datos. Hay una "característica no documentada" donde dicho archivo debe tener una tabla definida también y esa tabla "relacionada" con cualquier otra tabla en el gráfico de relaciones (no importa cuál) para que funcione el acceso ODBC. De lo contrario, sus consultas siempre no devolverán resultados.

El documento PDF detalla todas las limitaciones de uso de la interfaz xDBC que proporciona FMP. El rendimiento de las consultas simples es razonablemente rápido, ymmv. He encontrado que el rendimiento de las consultas que especifican el operador "LIKE" es menos que estelar.

FMP también tiene una interfaz XML/XSLT que puede usar para consultar datos FMP a través de una conexión HTTP.También proporciona una clase PHP para acceder y usar datos FMP en aplicaciones web.

2

Si su inclinación es a Python, puede que esté interesado en echarle un vistazo a Python Wrapper for Filemaker. Proporciona acceso bidireccional a los datos de Filemaker a través de los servicios XML integrados de Filemaker. Puede encontrar información bastante detallada al respecto en:

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

Cuestiones relacionadas