Jump to content
  • 0

Filemaker ODBC import MySQL


grrr

Question

Bij voorbaat alvast dank voor dit forum en eventuele hulp.

 

Mijn situatie:

- Filemaker Pro 10 (Geen advanced).

- ODBC driver van MySQL

- MySQL webdatabase versie 5.0.

- Records zonder automatische incrementele id in die MySQL webdatabase.

- HTML Formulier dat gegevens in de MySQL database schrijft.

 

Ik heb voor een klant een script gemaakt om in Filemaker via ODBC verbinding te maken met een MySQL webdatabase bij een host en daar twee SQL stappen uit te voeren:

- Records importeren uit MySQL tabel in Filemaker

- Verwijder MySQL records (rijen in MySQL natuurlijk) om ervoor te zorgen dat bij de volgende import niet dezelfde records worden geimporteerd.

 

Nu is er door een tijdelijke serverfout het volgende probleem opgetreden:

Het importscript had geen foutbescherming.

Door een tijdelijke storing op de MySQL server van de webhost tijdens een importactie, is de import mislukt maar de Delete werd wel goed uitgevoerd.

 

Nu wil ik hier dus een bescherming voor bouwen.

Het afvangen van een importfout gaat volgens mij wel goed (Weet niet exact hoe ik importactie op de MySQL server kan vernaggelen als test) door de aangeroepen tabel tijdelijk van naam te veranderen. Dat geeft een mooie error-resultaat in Filemaker.

Daarmee kan ik in ieder geval een Delete actie in de MySQL tegenhouden bij een error tijdens de import.

Verwijderen van mogelijk corrupt geimporteerde records in Filemaker is echter problematisch.

De found-set kan 0 zijn en dan zou een wis-actie in Filemaker goede records kunnen wissen.

Ik kan wel achterhalen hoeveel records in de MySQL staan maar daarmee weet ik nog niet of en hoeveel records goed zijn geimporteerd of corrupt zijn en dus kan ik niet herleiden hoeveel records ik uit Filemaker zou kunnen wissen.

 

Ik heb al aardig wat mogelijke oplossingen geprobeerd te vinden op internet en heb dus ook al wat betaalde oplossingen gezien in plugins met transactie mogelijkheden. Maar nu ben ik een goedkope Hollander en kan en wil daar geen knaken aan uitgeven.

 

De oplossingen waarmee ik denk iets aan het probleem kan doen zonder extra kosten te maken zijn:

- Aparte importtabel met een controle die pas de records op de MySQL pas weggooit als de import zonder error is verlopen.

Dan moet ik echter wel records naar de echte tabel kopieeren en dat ziet in Filemaker niet eens zo eenvoudig uit, verder is het waarschijnlijk wel de snelste en simpelste oplossing.

- Record voor record importeren en controleren op error en vervolgens wel of geen record verwijderen.

Vast een langzame oplossing en ik weet niet op ik in Filemaker een MySQL string in een script kan manipuleren.

- Mijn tabel in MySQL aanpassen dat elk record een unieke id krijgt.

Het importscript in Filemaker aanpassen dat bij een error tijdens het importeren van records uit MySQL, de record-id uit MySQL tabel wordt overgenomen zodat ik bij een latere import-actie het mogelijk verkeerd geimporteerde record(s) opnieuw kan importeren.

 

Okee, heel verhaal.

Mijn echte vraag is eigenlijk is de oplossingen die ik voor ogen heb realistisch zijn?

 

[edit]

Okee, dom van mij maar ik heb gevonden hoe het gemakkelijk kan.

Gewoon een import in Filemaker via ODBC naar de MySQL database in een aparte tabel.

Dan een import doen op hetzelfde bestand maar met de bron een andere tabel.

Vervolgens hoef ik alleen de import tabel maar te wissen.

Treed er een fout op bij het importeren vanuit de MySQL tabel, dan wis ik gewoon de import tabel in Filemaker.

Link to comment

2 answers to this question

Recommended Posts

  • 0

Eehhhmmm... mogelijk kleine tip...

 

De MySQL tabel heeft een unieke ID?

 

Dan kan je in Filemaker op dat unieke ID een relatie leggen tussen de MySQL tabel en de Filemaker tabel.

Pak vervolgens twee velden om met elkaar te vergelijken en je weet dat die velden overal gelijk moeten zijn.

Pas als alle records op die manier gecontroleerd en gelijk zijn, verwijder je de MySQL records.

 

Wil je meer zekerheid, dan vergelijk je meer velden met elkaar.

 

Indien er een mismatch is tussen de Filemaker en MySQL tabel, verwijder je de geimporteerde regels en importeer je (mogelijk pas veel later) de boel opnieuw.

Link to comment
  • 0

Mogelijk ga ik nu voor de meest late reactie ooit maar SuperWimmie bedankt voor je reactie.

Ik heb je idee nog niet toegepast maar je reactie zet me in de juiste richting.

Bedankt dus.

Dit draadje mag dicht of naar de elektronische eeuwige jachtvelden.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...