Beste måte å hente ut data fra en Filemaker Pro database i et skript?

stemmer
8

Min jobb ville være lettere, eller i det minste mindre kjedelig om jeg kunne komme opp med en automatisert måte (fortrinnsvis i et Python-skript) til å trekke ut nyttig informasjon fra en Filemaker Pro database. Jeg jobber med Linux-maskin og Filemaker database er på samme LAN som kjører på en OS X-maskin. Jeg kan logge seg på webby grensesnittet fra min maskin.

Jeg er ganske hendig med SQL, og hvis noen kunne peke meg til noen Filemaker plug-in som kunne gi meg SQL tilgang til data i Filemaker, ville jeg være fornøyd som punch. Alt jeg har funnet bare går den andre veien: Å ha Filemaker få data fra SQL kilder. Ikke brukbar.

Det er ikke mitt førstevalg, men jeg vil bruke Perl stedet for Python hvis det var en Perl-y løsning for hånden.

Merk : XML / XSLT tjenester (som foreslått av noen folk) er kun tilgjengelig på FM Server, ikke FM Pro. Ellers, det ville trolig være den beste løsningen. ODBC er å snu seg å være svært vanskelig å selv komme i arbeid. Det er absolutt null tilbakemelding fra FM når du setter den opp slik at du må grave gjennom /var/log/system.log og analysere obskure feilmeldinger.

Konklusjon : Jeg fikk det til å fungere ved å kjøre en python skript lokalt på maskinen som spør FM-database via ODBC tilkoblinger. Manuset er faktisk en TCPServer som aksepterer kontaktforbindelser fra andre systemer på LAN, kjører spørringene, og returnerer dataene gjennom socket-tilkobling. Jeg måtte gjøre dette for å omgå det faktum at FM Pro kun godtar ODBC tilkoblinger lokalt (FM-server er nødvendig for eksterne tilkoblinger).

Publisert på 26/08/2008 klokken 17:20
kilden bruker
På andre språk...                            


3 svar

stemmer
5

Det har vært en veldig lang tid siden jeg gjorde noe med Filemaker Pro, men jeg vet at det ikke har evner for en ODBC (og JDBC) tilkobling skal gjøres til det (men jeg vet ikke hvordan, eller om, at settes til linux / perl / python verden skjønt).

Denne artikkelen viser hvordan du deler / eksponere dine Filemaker-data via ODBC og JDBC:
Dele Filemaker Pro-data via ODBC eller JDBC

Fra der, hvis du er i stand til å opprette en ODBC / JDBC-tilkobling kan du spørre ut data etter behov.

Svarte 26/08/2008 kl. 17:36
kilden bruker

stemmer
3

Du trenger Filemaker Pro installasjons CD for å få driverne. Dette dokumentet beskriver prosessen for FMP 9 - det er likt for versjoner 7.x og 8.x også. Versjoner 6.x og tidligere er helt annerledes, og jeg ville ikke bry prøver (xDBC støtte i de tidligere versjonene er "minimal" i beste fall).

FMP 9 støtter SQL-92 standard syntaks (for det meste). Legg merke til at i stedet for å spørre tabeller direkte du spørring ved hjelp av "bordet forekomst" navn som fungerer som en tabell alias slags. Hvis datatabellene er lagret i flere filer er det mulig å lage en enkelt FMP fil med bord forekomster / aliaser som peker til de datatabeller. Det er en "udokumentert funksjon" der en slik fil må ha et bord definert i det også, og det bordet "relatert" til en annen tabell på relasjoner grafen (spiller ingen rolle hvilken) for ODBC tilgang til arbeid. Ellers dine spørsmål vil alltid returnere noen resultater.

PDF-dokumentet beskriver alle de begrensningene ved bruk av xDBC grensesnittet FMP gir. Utførelse av enkle spørsmål er rimelig raskt, YMMV. Jeg har funnet resultatene av spørringer som spesifiserer "like" operator å være mindre enn fantastisk.

FMP har også en XML / XSLT-grensesnitt som du kan bruke til å spørre FMP data over en HTTP-tilkobling. Det gir også en PHP klasse for tilgang og bruk av FMP data i webapplikasjoner.

Svarte 31/08/2008 kl. 13:11
kilden bruker

stemmer
2

Hvis skjeve er å Python, kan du være interessert i å sjekke ut Python Wrapper for Filemaker. Det gir toveis tilgang til Filemaker data via Filemaker innebygde XML tjenester. Du kan finne noen ganske grundig informasjon om dette på:

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

Svarte 09/09/2008 kl. 02:25
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more