Domanda

Il mio lavoro sarebbe più semplice, o almeno meno noioso, se potessi trovare un modo automatizzato (preferibilmente in uno script Python) per estrarre informazioni utili da un database FileMaker Pro.Sto lavorando su una macchina Linux e il database FileMaker si trova sulla stessa LAN in esecuzione su una macchina OS X.Posso accedere all'interfaccia webby dalla mia macchina.

Ho una certa dimestichezza con SQL e se qualcuno potesse indicarmi qualche plug-in FileMaker che possa darmi l'accesso SQL ai dati all'interno di FileMaker, ne sarei molto felice.Tutto quello che ho trovato va solo nella direzione opposta:Fare in modo che FileMaker ottenga i dati da origini SQL.Inutile.

Non è la mia prima scelta, ma utilizzerei Perl invece di Python se ci fosse una soluzione Perl-y a portata di mano.

Nota:I servizi XML/XSLT (come suggerito da alcune persone) sono disponibili solo su FM Server, non su FM Pro.Altrimenti probabilmente sarebbe la soluzione migliore.ODBC si sta rivelando estremamente difficile persino da far funzionare.C'è assolutamente zero feedback da FM quando lo configuri, quindi devi scavare in /var/log/system.log e analizzare oscuri messaggi di errore.

Conclusione:L'ho fatto funzionare eseguendo uno script Python localmente sulla macchina che interroga il database FM tramite le connessioni ODBC.Lo script è in realtà un TCPServer che accetta connessioni socket da altri sistemi sulla LAN, esegue le query e restituisce i dati tramite la connessione socket.Ho dovuto farlo per ignorare il fatto che FM Pro accetta solo connessioni ODBC localmente (per le connessioni esterne è richiesto il server FM).

È stato utile?

Soluzione

È stato un Veramente da molto tempo che non faccio nulla con FileMaker Pro, ma so che ha funzionalità per stabilire una connessione ODBC (e JDBC) (tuttavia, non so come, o se, ciò si traduce in linux/ mondo perl/python però).

Questo articolo mostra come condividere/esporre i tuoi dati FileMaker tramite ODBC e JDBC:
Condivisione dei dati di FileMaker Pro tramite ODBC o JDBC

Da lì, se riesci a creare una connessione ODBC/JDBC, puoi eseguire query sui dati secondo necessità.

Altri suggerimenti

Avrai bisogno del CD di installazione di FileMaker Pro per ottenere i driver. Questo documento descrive in dettaglio il processo per FMP 9: è simile anche per le versioni 7.xe 8.x.Le versioni 6.xe precedenti sono completamente diverse e non mi preoccuperei di provarci (il supporto xDBC in quelle versioni precedenti è nella migliore delle ipotesi "minimo").

FMP 9 supporta la sintassi standard SQL-92 (principalmente).Tieni presente che invece di interrogare direttamente le tabelle, esegui la query utilizzando il nome "occorrenza di tabella" che funge da sorta di alias di tabella.Se le tabelle di dati vengono archiviate in più file, è possibile creare un singolo file FMP con occorrenze/alias di tabella che puntano a tali tabelle di dati.Esiste una "funzionalità non documentata" in cui un file di questo tipo deve avere anche una tabella definita al suo interno e quella tabella "correlata" a qualsiasi altra tabella nel grafico delle relazioni (non importa quale) affinché l'accesso ODBC funzioni.Altrimenti le tue query non restituiranno sempre risultati.

Il documento PDF descrive in dettaglio tutte le limitazioni relative all'utilizzo dell'interfaccia xDBC fornita da FMP.Le prestazioni di query semplici sono ragionevolmente veloci, ymmv.Ho riscontrato che le prestazioni delle query che specificano l'operatore "LIKE" sono tutt'altro che eccezionali.

FMP dispone inoltre di un'interfaccia XML/XSLT che è possibile utilizzare per eseguire query sui dati FMP tramite una connessione HTTP.Fornisce inoltre una classe PHP per l'accesso e l'utilizzo dei dati FMP nelle applicazioni web.

Se la tua inclinazione è per Python, potresti essere interessato a dare un'occhiata a Python Wrapper per Filemaker.Fornisce accesso bidirezionale ai dati Filemaker tramite i servizi XML integrati di Filemaker.Puoi trovare informazioni abbastanza approfondite al riguardo su:

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top