Ga naar inhoud
  • 0

Filemaker ODBC import MySQL


grrr

Vraag

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 naar reactie

2 antwoorden op deze vraag

Aanbevolen berichten

  • 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 naar reactie
  • 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 naar reactie

Doe mee aan dit gesprek

Je kunt dit nu plaatsen en later registreren. Indien je reeds een account hebt, log dan nu in om het bericht te plaatsen met je account.

Gast
Beantwoord deze vraag...

×   Geplakt als verrijkte tekst.   Plak in plaats daarvan als platte tekst

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...