Beste lezer,
Ik ben aan het overstappen van het BDE tijdperk naar Delphi 2009.
In MySQL heb ik een aantal tabellen aangemaakt. Via DBX componenten leg ik verbinding: TSQLConnection, SimpleDataSet en TSQLQuery.
Ik heb de boel al een beetje aan de praat gekregen en kan via de SimpleDataset al door tabellen heen scrollen.
Wanneer ik een INSERT query maak met TSQLQuery en via EXECSQL uitvoer gaat er af en toe iets fout. Ik heb de volgende problemen:
- Wanneer ik een record probeer in te voeren dat al bestaat en waar een unieke index opzit krijg ik een lelijke foutmelding: TDBXerror with the message 'Duplicate entry...'. Hoe kan ik deze melding netjes afvangen?? Waarom krijg ik niet gewoon een getal waardoor ik kan concluderen dat er iets niet goed gaat?
- Ik probeer een paar 100 records over te zetten. Ik ben bang dat ik een niet optimale (ehhhhh) methode gebruik. Per regel voer ik een losse Insert Query uit. Wanneer ik een INSERT query uitvoer waarin bijvoorbeeld 20 regels zitten en er zit 1 unieke tussen dan gaat de query toch fout. Nu doe ik ze los en plaats in een loop de query tussen TRY EXCEPT...
- Kan ik in Delphi net als in MYSQL een reeks INSERTS uitvoeren waar een ; (punt komma) achter staat. Een Transactie.
- Of, is het beter om eerst te checken of het record er is. Bijvoorbeeld via een SELECT query en pas daarna een losse INSERT query uit te voeren.
OK, Sorry voor mijn wellicht domme vraag. Ik heb al gezocht naar een boek over Delphi 2009 maar dat is Engels en lijkt vooral over zeer geavanceerde zaken te gaan.
Greetings,
Rogier
Bookmarks