Zitat von
abi:
Ich habe zwei Tabellen.
Die 1.
Nummer (Primary key)
Name (String)
Ort (Integer)
Die 2
Nummer (Primary Key)
OrtNr (Integer)
Ort (String)
Wenn ich jetzt einen neue Daten einfügen will, geht das ja wunderbar. Aber leider muss ich wenn ich einen neuen Ort habe immer die Nummer dazu eingeben.
Kann man des so machen, das er falls der Ort schon vorhanden ist, diesen Übernimmt und wenn nicht denn neuen Ort einfach einfügt.
Ich denke nicht, dass es sinnvoll ist, die Normalisierung von Datenbank so weit zu treiben,
den Ort getrennt vom Rest zu speichern.
Aber trotzdem hier mal die Vorgehensweise. Nimm eine
Query mit folgender
SQL-Anweisung
SELECT * FROM Tabelle2 WHERE Ort=:Ort
Delphi-Quellcode:
QryOrte.Close;
QryOrte.Params.ParamByName['Ort'] := aktuellerOrt;
QryOrte.Open;
if QryOrte.IsEmpty then
begin
// aktueller Ort nicht gefunden, also einfügen
QryOrte.Append;
QryOrte['OrtNr'] := ...
QryOrte['ort'] := aktuellerOrt;
QryOrte.Post;
end
else
// Ort gefunden, also Feld OrtNr auslesen
aktuelleOrtNr := QryOrte['OrtNr'];