SQL Fehlerausgabe "Indexfehler.."
-
Hallo,
ich füge aus einem Editfeld mit einer TQuery Komponente Datensätze in eine SQL Datenbank. Wenn ich in das Feld "Kundennummer" ( dies ist Primärschlüssel ) eine bereits vorhandene Kundennummer eintrage, bekomme ich die Fehlermeldung "Indexfehler.[MYSQL]..".
Nun meine Frage:
Wie kann ich, bevor ich den Eintrag in die Datenbank speichere überprüfen, ob die Nummer bereits vergeben wurde ? Stellt Borland hierzu eine Funktion bereit ?Sorry schonmal, wenn ihr die Frage zu einfach findet, aber ich bin halt noch nicht ganz so fit in Datenbankprogrammierung.
Vielen Dank im voraus.
-
Laß die DB die Nummer vergeben, sprich mach ein Autoincrement-feld aus der KundenNr. schreibe den Kunden und lies die Nummer danach aus ( Achtung timestamp oder datetime zur Unterscheidung zweier identicher ADressen nötig!)
Umständlicher lege eine Zählertabelle an. Locke die, lies die KundenNummer aus und incrementiere selbst (auch in dem table), lege den Kunden an und gib die Zählertabelle frei...
Gruß Karsten
-
Hallo
wenn Kundennumemr ein reiner Integer ist (Zahl) dann kannst du mittels
SQL - Max dir die groesste Nummer holen
oder wenn es keine fortlaufenden Numemrn sein sollen
frag erst mittels SELECT ab ob schon vorhanden bzw fang den Fehler ab (try catch)MfG
Klaus
-
wenn Kundennumemr ein reiner Integer ist (Zahl) dann kannst du mittels
SQL - Max dir die groesste Nummer holen
oder wenn es keine fortlaufenden Numemrn sein sollen
frag erst mittels SELECT ab ob schon vorhanden bzw fang den Fehler ab (try catch)das darf er aber nur ungestraft tun, wenn er alleiniger schreibender Benutzer ist, sonst gibt's doppelte KundenNr. ! Ich kann nur wärmstens empfehlen das die DB machen zu lassen ( MySQL bietet sogar die Möglichkeit zu einem insert die zugehörige ID des Autoincrementfeldes zu liefern)
Gruß Karsten
-
Hallo,
ich wollte noch anmerken, daß auch GUID's als Primärschlüssel ihren Charme haben. Viele Probleme lösen sich in Luft auf und das Zusammenführen von Datenbeständen kann fast schon Spaß machen ...