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.
Question
grrr
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.
2 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.