Announcement

Collapse
No announcement yet.

Delete...

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Delete...

    Hallo liebe NG,

    ich habe folgendes Problem.

    Zwei Tabellen Kunde, Buchung. Die Buchungseinträge werden mit einem Feld KundeID dem Kunden zugeordnet.

    Nun möchte ich gerne in einer DB Säuberungsaktion alle Buchungseinträge löschen zu der kein Kunde existiert.
    Ich habe es schon mit einer DELETE JOIN Anweisung versucht, aber da meckert die BDE.

    Hat da jemand eine Idee?

    Vielen Dank,
    Michael

  • #2
    delete from buchung where kundenid not in (select kundenid from kunde

    Comment


    • #3
      BuchungsTbl.First;
      for i := BuchungsTbl.RecordCount - 1 do
      begin
      while not (Kundentbl.Locate('KundeID',BuchungenKundenID.Valu e,[])) do
      begin
      Buchungstbl.Delete;
      end;
      BuchungsTbl.Next;
      end;
      Buchungstbl.FlushBuffers;

      Damit das nicht passiert musst Du im BeforeDelete-Event des KundenTbls folgendes einfügen:

      procedure KundenTblBeforeDelete(DataSet: TDataSet);
      begin
      //erst den DetailTable löschen!!
      with BuchungsTbl do
      begi
      if not active then
      Open;
      while not EOF do
      Delete;
      FlushBuffers;
      end;
      //hiermit bleiben keine überlüssigen Buchungen zurück
      end;

      Ralph Dietrich (www.rdsoftware.org, www.extendedsoft.com

      Comment

      Working...
      X