Entwickler-Ecke

Datenbanken - Datensätze in den dazugehörigen Tabellen mitlöschen!


m-werk - Mo 12.08.02 17:45
Titel: Datensätze in den dazugehörigen Tabellen mitlöschen!
Hi Leute, könnt Ihr mir helfen, ich weiß leider keinen RAT mehr.

In meiner Datenbank sind ja einige Tabellen.
Im Programm sind diese Tabellen verknüpft über die KundenNr

Wenn ich jetzt vom Hauptprogramm einen Kunden lösche, wie kann ich es anstellen, dass von den anderen Tabellen diese Werte, die dem Hauptkunden zugeordnet sind, auch gelöscht werden?

Im Programm ist es jetzt so das wenn ich den Hauptkunden lösche, auch die anderen Werte nicht mehr ersichtlich sind (KundenNr zugeordnet)

Aber in der Access-DB sind diese Werte noch drinn.

Ich verwende Delphi 6 und ADO


MrSpock - Mo 12.08.02 17:59

Hallo m-werk,

ich bin mir ziemlich sicher, dass du bei der Erstellung von Tabellen in Access unter "Referenzielle Integrität" eine sogenannte "Löschweitergabe" aktivieren kannst. Dann löscht Access die so verknüpften Daten selbstständig. Leider kann ich dir die genauen Menüpunkte nicht nennen, weil ich Access nicht auf meinen Rechner lasse. Außer beim Betriebssytem ist er nämlich MS FREI.

Aber schau doch mal in die Hilfe unter den o.g. Stichworten.


Spike - Mo 12.08.02 19:50

Hallo,

Du mußt unter Access die Beziehungen zwischen den Tabellen definieren, referentielle Inegrität anklicken und dann Löschweitergabe anklicken.

Spike


m-werk - Mo 12.08.02 20:09

Hi, kann man das auch im Programm irgendwie lösen? Ich möchte an der Datenbank nichts mehr ändern, da diese Datenbank schon 3-5 User haben. Sonst müßte ich alle Datenbänke anfordern und diese dann ändern. Dies möchte ich vermeiden


Spike - Mo 12.08.02 20:24

Natürlich kannst Du auch beim löschen von Datensätzen (BeforeDelete) die anderen Tabellen durchlaufen und dort alle in Beziehung stehenden Daten löschen, aber wenn wirklich max 5 Datenbanken im Umlauf sind würde ich mir das nochmal überlegen. Ist halt keine saubere Lösung und meist führt sowas früher oder später zu Problemen, von der Verarbeitungsgeschwindigkeit mal ganz abgesehen.
Wenn Du's trotzdem im Programm machen willst würde ich die Tabellen filtern und anschließend alle Datensätze löschen.

Spike