Denna delen av 99 uppdateras inte längre utan har arkiverats inför framtiden som ett museum.
Här kan du läsa mer om varför.
Mac-nyheter hittar du på Macradion.com och forumet hittar du via Applebubblan.

Nu fick jag JDBC och ODBC att fungera till/från FileMaker Pro i Mac OS X och Windows!

Tråden skapades och har fått 18 svar. Det senaste inlägget skrevs .
1

Det tog hela natten, men nu har jag löst det jag ville göra: Få FileMaker Pro och MySQL (eller någon annan SQL-databas att prata med varann antingen via ODBC eller JDBC och både på Mac och på PC. Kul!

VAD JAG LYCKATS MED

* I Mac OS X: FRÅN FM (via JDBC) TILL MySQL

FRÅN en FM Pro-databas skicka SQL-kommandon TILL en MySQL-databas (INSERT, SELECT osv), med hjälp av en plugin som heter PDM SQL Plugin och JDBC-drivrutiner som finns på FileMaker Developer-CD'n.

Med detta kan jag bygga frontends i FM mot MySQL. Samma teknik skall enligt tillverkaren även fungera för Oracle, MS SQL, MySQL, PostgreSQL, Sybase, Informix, Virtuoso, och andra JDBC eller ODBC-databaser.

Vad betyder det då? Jo att man kan bygga en lösning, tex en webshop som baserar sig på en MySQL-databas. Sedan kan man låta användarna jobba i ett överlägset GUI för att mata in data och via det fylla på webshoppen med artiklar och kunder och annat, och sedan via FileMaker hämta hem order och kunder och skjuta ut det som fakturor, beställningar, email, exportfiler till ekonomisystem, postens Ebrev mm. Mycket skojigt. Datainmatning via FileMaker kan tack vare script och knappar och annat fluffigt bli mycket mycket effektivare och snabbare än vad man kan åstadkomma i ett webbgränssnitt. Så på det viset får man det bästa från två världar, snabbheten och stabiliteten i MySQL och det snabba lättarbetade GUI't för användarna.

I Windows 2000: FRÅN ETT SQL-verktyg (via ODBC) TILL FM

Få ett freeware som heter CuteSQL (finns på http://www.versiontracker.com/windows/) skicka SQL-kommandon TILL en FM-databas (SELECT, INSERT osv) endast med hjälp av de ODBC-drivrutiner som medföljer FileMaker Pro respektive Windows.

Eftersom det finns stöd i Microsoft SQL Server för att skicka SQL-kommandon via ODBC till valfri datakälla, så betyder det att man alltså kan skapa en Stored Procedure som skickar SQL-kommandon till FileMaker, och på det viset synkroniserar data mellan MS SQL och FileMaker. Motsvarande kommandon har jag inte hittat i MySQL.

Vad betyder det då? Jo då det finns ett antal system på marknaden för tex säljstöd (ett heter tex Alladin) som är baserat på MS SQL Server så kan man när man i säljstödssystemet har producerat ett avslut, dvs en order, automatiskt skjuta in den i ett annat FileMaker Pro-basera Backoffice-system med fiffiga funktioner som man inte kostnadseffektivt kan bygga i MS SQL.

I teorin: FRÅN FM (via ODBC) TILL SQL-databas

* I teorin bör det gå att FRÅN FileMaker (i Mac OS X eller Windows) skicka SQL-kommandon via ODBC till en antingen Oracle eller SQL Server, för där är det bara att lägga in ett script-steg i ett manus efter att man konfigurerat ODBC, vilket är lätt. Men då jag inte har varken SQL Server eller Oracle så har jag inte kunnat prova, men ser att det i FM är tänkt så.

Med detta kan jag bygga frontends i FM som jobbar mot MS SQL-databaser eller Oracle, bara databasen har en ODBC-drivrutin. Tillgängliga drivisar är MS SQL och Oracle. Det finns flera hos www.openlinksw.com men det verkar vara komplicerat att hitta rätt drivrutin, många varianter har de... Samma resonemang som det jag skrev om först.

VAD JAG MISSLYCKATS MED
Här är vad jag misslyckats med... (av alla återvändsgränder under natten är dessa mest intressanta):

FRÅN en SQL-databas av en tillverkare TILL en annan SQL-databas av en annan tillverkare
* Att lista ut hur man från en SQL-databas från en tillverkare skickar SQL-kommandon till en annan SQL-databas (från en annan tillverkare, eg från MS SQL till MySQL eller v.v), utan att gå via någon specialskriven applikation.

Här har jag nu kollat i mina T-SQL-böcker och i SQL Books Online för MS SQL Server och sett att det finns kommandon och system stored procedures för att ansluta till en ODBC-källa direkt och skicka SQL-kommandon till den. Har INTE hittat sådana kommandon i MySQL-manualen.

Så, det betyder att det bör gå utan vidare mankemang att skriva SQL-kommandon som körs av SQL Server som pratar med en FileMaker Pro databas. Att sätta upp en liten PC med FileMaker och öppna ett större system med massa databaser i den maskinen och låta MS SQL Server hämta och lämna data till den vid tillfälle borde alltså inte vara så speciellt svårt. Det betyder att man lätt kan synka mellan olika system och det kan initieras från valfritt håll, med triggers i MS SQL Server och via script och knappar i FileMaker Pro.

FRÅN FM (via ODBC eller JDBC) TILL FM
* Att få en FileMaker-databas att prata med en annan FileMaker-databas via ODBC eller JDBC och skicka SQL-kommandon dem emellan. Tror inte det är möjligt. Detta har ingen praktiskt betydelse, men hade varit trevligt om det gick att testa så.

Skriv en rad i tråden om ni vill fråga något eller veta mera eller tom hyra in mig för att bygga något roligt!

Visst är det skönt när man lyckats med något liknande, gott att få gå på moln några dagar.

  • Medlem
  • Stockholm
  • 2004-03-24 17:45

Jag försökte vid ett tillfälle få en FileMaker-databas att lyssna på SQL-kommandon via ODBC, men lyckades inte. Fattade aldrig riktigt hur det skulle gå till. (Jag var förmodligen för otålig.)

Några tips?

Ursprungligen av HL:

Jag försökte vid ett tillfälle få en FileMaker-databas att lyssna på SQL-kommandon via ODBC, men lyckades inte. Fattade aldrig riktigt hur det skulle gå till. (Jag var förmodligen för otålig.)

Några tips?

Var det på Mac eller PC?

På PC var det rena barnleken (dessa steg görs i Windows)

1. Kolla att FM ODBC är installerade, om inte, installera dem från CD-skivan igen via en anpassad installation. Med FileMaker Pro följer fyra ODBC-drivisar (FM, Oracle, MS SQL, Text). Dessa fyra finns numera även för OS X.

2. Skapa en användar-dns eller system-dns med programmet "Datakällor (ODBC)" som finns under Start > Program > Administrationsverktyg (I Windows 2000). Du väljer en drivrutin och sedan knappar du in ett namn och en beskrivning på den. Om FileMaker finns i samma maskin så är du klar nu, om FM finns i en annan maskin kryssar du för Fjärranslut och vilket IP-nummer eller adress som maskinen har och så är du klar nu.

3. Starta din applikation som kan prata ODBC på PC-sidan (jag testade med något som heter CuteSQL som jag tror var Freeware som jag hittade på Versiontrackers Windows-avdelning).

4. Välj datakällan du just gjorde, logga in med användarnamn och lösenord. (Steg 4 måste göras efter steg 5 och 6 och 7.)

Dessa steg kan utföras i en FileMaker som finns antingen på PC eller på Mac!

5. Aktivera pluggarna "Local Data Access Companion" (om applikationen som skall prata med FM via ODBC finns i samma maskin) och/eller "Remote Data Access Companion" (om det är en annan maskin)

6. Dela databasen via Arkiv > Dela register. Du behöver inte kryssa för "Öppet för gäster", men kryssa för de plugins du aktiverat under steg 5 som finns under plugins.

7. Sätt ett lösenord på databasen och skapa också en grupp som hör till det lösenordet.

Tillbaka på PC
8. I din applikation enligt steg 3, skriv ett test-SQL-script som är tex:

"SELECT * FROM namnetpådatabasenutan.fp5"

Ex: SELECT * FROM Kunder

Ett resultat bör då dyka upp i resultatförstret.

Annat att testa med

INSERT INTO Kunder (Namn, Adress_01, Adress_02) VALUES ('Ola Andersson', 'Gatan', 'Gatan')

Osv...

Lycka till!

/Ola

  • Medlem
  • Stockholm
  • 2004-03-25 18:23

Coolt! Jag testade visserligen på Mac, men det borde väl vara relativt likt.

Ursprungligen av HL:

Coolt! Jag testade visserligen på Mac, men det borde väl vara relativt likt.

Man skulle kunna tro det, men det är det inte. På Mac så är det inte lika lätt att hitta program som kan skicka SQL via installerade ODBC-drivrutiner och skapade datakällor (rätta mig hemskt gärna om jag har fel för jag vill gärna veta), i alla fall har jag inte hittat någon (provade ett par stycken jag laddat hem från Versiontracker). Att få FM att göra detta från sig själv till sig själv i syfte att testa tror jag inte är möjligt (har försökt).

Men om programvaran på Mac-sidan har stöd för att prata ODBC så bör det fungera på samma sätt. För FM kan ju via pluggarna ta emot ODBC.

Kanske att det går via två macar, det har jag inte provat.

/Ola

Kan tillägga i denna diskussion att den Microsoft SQL-server expert som var inhyrd av vår kund för att få SQL Server att skicka SQL-kommandon via ODBC inte lyckades göra detta. Det beror troligen på att SQL Server inte kan göra det. Om någon vet annorlunda får de gärna fylla på med information.

Jag håller på och får en FMP-databas att snacka med MySQL.

Den ska stoppa in utvald information i SQL-databasen, men jag får inte till Execute SQL-skriptfunktionaliteten i Filemaker. Den är (precis som mycket annat med Filemaker) helt odokumenterad och helt omöjlig att gissas sig till funktionaliteten).

Jag vill kunna köra en INSERT INTO till MySQL, men får den bara att sätta tomma rader. Någon som kan hjälpa mig?

I mitt första inlägg skriver jag:

"* I Mac OS X: FRÅN FM (via JDBC) TILL MySQL

FRÅN en FM Pro-databas skicka SQL-kommandon TILL en MySQL-databas (INSERT, SELECT osv), med hjälp av en plugin som heter PDM SQL Plugin och JDBC-drivrutiner som finns på FileMaker Developer-CD' "

Har du gjort något av detta?

1. Jag vill inte köra JDBC, utan håller mig till ODBC då det stöds native av vår driftsmiljö i övrigt.

2. Så eftersom jag inte vill använda JDBC, utan utgick från att de inbyggda SQL-funktionerna (Execute SQL) i Filemaker 5.5 skulle fungera utan att behöva installera extra plugins. Vilket de i princip gör, jag kan via ODBC kontakta databasen och sätta tomma rader. Av detta trodde jag mig kunna härleda:

A. Jag kan via ODBC hitta den MySQL-databas jag är ute efter.
B. Jag kan vidare hitta den tabell där jag vill stoppa in data
C. Jag har möjlighet att sätta data i min tabell (eftersom jag lyckas skapa tomma rader)
D. Filemaker är bra till att hålla sig inom sin egen teknologi, men när det gäller extern kommunikation har återigen Filemaker Inc visat sin oduglighet i att dokumentera sina programs funktionalitet.

Men på dig låter det som att jag har fel i att anta att det ska funka out-of-the-box. Jag bör alltså se mig om efter externa plugins till FMP för att få det att fungera?

William: "Den klumpige hantverkaren skyller på verktyget"... Jag uppskattar inte att du klagar på FM när det är de egna kunskaperna som saknas och om du vill ha hjälp av mig framledes så föreslår jag att du slutar med det.

Prova att ersätta " med ' eller tvärtom i ditt INSERT.

Taz: "Den partiske är ofta lättstött". Jag uppskattar inte att du är otrevlig nog att anklaga mig för att vara okunnig när jag påpekar att Filemaker är en dåligt dokumenterad produkt.

Jag har jobbat med FMP i mer än 4 år och anser att jag därmed har ganska bra koll på produkten, dess fördelar och dess brister. Filemaker är jättebra som frontend, men på extern kommunikation är den inte den stabilaste klippan att luta sig mot.

Vad gäller webdelen är det helt hopplöst, dokumentationen till webcompanion innehåller uppenbara fel och gör det verkligen inte lätt för en utvecklare.

Självklart är det lätt för dig som jobbar som FM-konsult med allt. Men för oss andra som inte jobbar med just FM-utveckling varje dag så är många saker högst problematiska - framförallt eftersom de är i princip odokumenterade. Så sluta vara en översittare och försök istället sprida förståelsen för Filemaker som du brinner så mycket för. För systemet är onekligen bra, om än irriterande dåligt dokumenterat.

Som de flesta som deltar regelbundet på 99Mac och andra ställen på intenret vet så är jag oftast snäll och hjälpsam och har lagt ned väldigt mycket tid på att hjälpa andra.

Men det finns några situationer när jag inte hjälper till utan istället satsar på att hjälpa någon annan.

1. När personen som frågar slarvar med sin beskrivning av vad problemet är och vad de redan testat och vad förutsättningarna är (produktnamn och version tex). Vill du att någon skall hjälpa dig, gör det så lätt för dem som möjligt genom att beskriva problemet noga. Det är ju inte direkt rättvist att en hjälpsam person skall behöva lägga ner MERA tid om den som vill ha hjälp slarvar med sin fråga.

2. När man får sålla igenom en massa omotiverat gnäll, adjektiv och svordomar för att hitta problemställningen. Klart att man kan skriva inlägg i affekt och skälla på en produkt man tycker är dålig och kalla den för skit. Men de som kan hjälpa dig med produkten är oftast de som jobbat med den mycket och de tycker oftast att produkten är bra och därmed har de lärt sig mycket om den och därmed gillar de den. Så att försöka få hjälp av en Audi-entusiast för att ta ett exempel med bilar och inleda med att säga Audi är en rostig hög med skruvar och konservburkar och slitet gummi som borde skrotas, får antingen inte speciellt mycket hjälp, varken i verkligheten eller på internet.

3. När personen trots tillsägelser och viss hjälp tydligt visar att man inte läst inläggen man skrivit, testat lösningarna man föreslagit eller svarat på frågorna man tagit sig tid att skriva. Allt för att kunna hjälpa personen bättre.

Du verkar göra alla tre, så då hjälper jag hellre någon annan.

Lycka till!

/Ola

P.S. Jag kan tillägga att jag har fått exakt samma sak som du försöker att göra att fungera så det är alltså inte fel på FileMaker eller dess dokumentation, jag kunde ju hitta det jag behövde veta...

Suck, vissa människor... :rolleyes:

Tack för hjälpen!

Tja, du inbillar dig att det är en lysande ide att skälla och förolämpa de personer du ber om hjälp och ovanpå det så lägger du inte två strån i kors för att underlätta för mig att hjälpa dig, sedan rullar du med ögonen åt mig och tycker att jag är dum när jag inte hjälper dig. Är det du eller jag som är dum då?

Jag föreslår att du byter taktik. Samma taktik skulle säkert fungera exakt lika dåligt om det var jag som bad dig om hjälp om något som du kunde, eller hur?

Om jag kan väldigt mycket om något speciellt och jag stöter på en person som har problem med just det jag kan så försöker jag hjälpa personen. I ännu större grad om personen är frustrerad över problemet och jag mycket väl inser att det går att lösa. Om jag då är fullt övertygad om den teknikens förmåga så försöker jag förmedla den känslan och kunskapen till den andra personen. Till motsats mot din inställning att om man inte älskar tekniken så är man inte värdig att få lära sig mer.

Du har en mycket märklig inställning till hur man ska hjälpa sin omgivning som är i behov av hjälp.

Jag sade ingenting ont om dig förrän du uttryckligen förolämpade mig i ett inlägg. Min eventuella förolämpning är endast ett svar på ditt omotiverade och onödiga kommentar om min eventuella kunskap i ämnet. En kunskap du för övrigt inte har den ringaste aning om.

För att lösa detta problem föreslår jag att ni (William & Taz) antingen:

1. Använder er av PM-funktionen för att fortsätta denna dispyt eftersom tråden börjar bra med hjälp om saker som flera har nytta av.. Det vore trist om den stängdes.

2. Ni träffas över en öl och inser att Ni båda är jäkligt trevliga killar och att det hela bygger på det klassiska "forum-missförståndet" som dyker upp ibland. Tror ni att någon utav er två över huvud taget var ute efter att vara otrevlig eller förolämpa från början? Det hela handlar om dåligt formulerade meningar och misstolkningar som eskalerat. Ibland uttrycker man sig konstigt eller rent av fel, och sker kommunikationen textbaserat så är risken enormt mycket större att man lägger in egna betoningar och röstlägen i den andres text....vilket kan sluta illa.

Finns mycket bättre saker att lägga sin tid och energi på än att bråka.

Du har helt rätt Martin. Jag har träffat Taz i verkligheten och vet att han är en vettig kille.

Ingen annan som vet mer om SQL och ODBC än mig?

Mitt problem är följande:

Jag använder Filemaker 5.5 och vill kommunicera med en MySQL-databas. Jag har satt upp MyODBC mot MySQL-databasen, vilket fungerar fint. Det vet jag eftersom jag kan logga in, hitta min tabell och sätta en rad. Raden blir dock bara satt med defaultvärdena som är definierade i MySQL.

Tabellens celler heter exakt samma sak som i FMP och har så vitt jag kan se samma struktur: FMP: Number, Text, Text <-> Mysql: Int, Text, Text

Vad jag försöker göra är att jag försöker ta det data jag har i FMP och popularisera min MySQL-tabell med det datat. Förenklat: kopiera mitt data från FMP till MySQL. Detta fungerar inte riktigt som jag har tänkt mig.

Jag använder FMP:s inbyggda stöd för ODBC och SQL - i form av "Execute SQL"-skriptkommandot som jag inte riktigt får att fungera eller hitta dokumentation för.

Jag har provat att skriva

"INSERT INTO web_film VALUES ( '" & filmId & "' )"
INSERT INTO web_film VALUES ( filmId )
INSERT INTO web_film VALUES ( '" & filmId & "' )
m.m. - ett antal olika sätt att skriva syntaxen, dels förslag som jag hittat på forum och dels olika test i ren desperation.

Frågan som jag ställde tidigare var: Har jag fel om jag tror att det ska fungera med den inbyggda funktionaliteten?

  • Oregistrerad
  • 2004-10-21 23:41

Testa med att definiera kolumnerna oxå:
INSERT INTO #table (col1, col2) VALUES (1,'test')

(har dock ej testat själv)

1
Bevaka tråden