AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi doppelte Einträge vermeiden [SQL]
Thema durchsuchen
Ansicht
Themen-Optionen

doppelte Einträge vermeiden [SQL]

Ein Thema von Hansa · begonnen am 6. Dez 2003 · letzter Beitrag vom 6. Dez 2003
Antwort Antwort
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#1

doppelte Einträge vermeiden [SQL]

  Alt 6. Dez 2003, 13:00
Hi,

wie kann ich es vermeiden, daß bei einem INSERT auf einen bereits bestehenden Datensatz dieser nicht neu eingefügt wird ? Es handelt sich um eine Detail-Tabelle, die einen FOREIGN KEY der Mastertabelle hat. Ist der Datensatz noch nicht vorhanden, so soll er eingefügt werden, ansonsten soll ein Update laufen.
Gruß
Hansa
  Mit Zitat antworten Zitat
Touchdown

Registriert seit: 17. Feb 2003
227 Beiträge
 
#2

Re: doppelte Einträge vermeiden [SQL]

  Alt 6. Dez 2003, 13:28
Du könntest ja sehr leicht mit einem Select prüfen ob es breits eine Detailtabelle gibt, vorrausgesetzt du kennst die Primary-ID der Haupttabelle.

Ist die Abfrage leer, musste du Insert machen und sonst ein Update.
function getallfornothing: TGoldesel;
begin
result := TGoldesel.create;
end;
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#3

Re: doppelte Einträge vermeiden [SQL]

  Alt 6. Dez 2003, 13:46
Hi!

Es gibt doch ne Anweisung für Update, also nicht INSERT sondern eben UPDATE!
Ob der anlegt falls nicht vorhanden, weiß ich grad nicht, aber das kann man ja prüfen!

Hoffe das hilft!

Ciao fkerber
Frederic Kerber
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#4

Re: doppelte Einträge vermeiden [SQL]

  Alt 6. Dez 2003, 14:13
Zitat von fkerber:
...Ob der anlegt falls nicht vorhanden, weiß ich grad nicht...
Genau da liegt der Hund begraben, ich auch nicht. Ich glaube das geht schon automatisch, nur wie ?
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#5

Re: doppelte Einträge vermeiden [SQL]

  Alt 6. Dez 2003, 14:55
Zitat von fkerber:
Es gibt doch ne Anweisung für Update, also nicht INSERT sondern eben UPDATE!
UPDATE verändert einen vorhandenen Datensatz. Deshalb gibt's da ja auch eine WHERE-Klausel. Ein automatisches Erstellen eines neuen Datensatzes ist IMHO nicht sinnvoll.
Beispiel: Es wird eine Spalte eines Datensatzes geändert. Die Tabelle hat einen AutoInc-Wert als PK, einen sekundären eindeutigen Key aus drei Spalten und 6 not null Felder. Der Datensatz wird entweder nach dem PK oder dem Sekundär-Key gesucht und nicht gefunden. Was soll nun mit den Werten für die 6 not Null Feldern passieren?
Ich kann mich hier dem Vorschlag von Touchdown nur anschließen: Mit einem Select überprüfen, ob der Datensatz bereits vorhanden ist, wenn ja dann UPDATE, wenn nein dann INSERT.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz