Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   datasource wo beim Speichern und Ändern "eingreifen" (https://www.delphipraxis.net/160424-datasource-wo-beim-speichern-und-aendern-eingreifen.html)

khh 12. Mai 2011 10:25

datasource wo beim Speichern und Ändern "eingreifen"
 
hallo zusammen,
ich hab eine DBGrid , den zugehörenden Datasource und den angebundenen DBNavigator.
Mit diesen Komponenten soll der User Artikelgruppen anlegen können.
An anderer Stelle werden diesen Artikelgruppen Artikel zugeordnet.
Nun ist es ja möglich per DBNavigator DS zu löschen.
Dies möchte ich verhindern, aber nur im Falle dass schon Zuordnungen vorgenommen wurden.
Ich hab mir gedacht im OnDataChange des Datasource "einzugreifen".
Leider wird OnDataChange aber bei jeder Bewegung im Grid ausgeführt.
Wo hänge ich mich da am besten rein?
Danke für eure Ideen.

Gruss KHH

schlecki 12. Mai 2011 10:30

AW: datasource wo beim Speichern und Ändern "eingreifen"
 
welche Datenbank verwendest du?

ich würde nämlich einfach Constraints auf der DB setzen. Dann kümmert sich diese um die Einhaltung der Regeln.

khh 12. Mai 2011 10:35

AW: datasource wo beim Speichern und Ändern "eingreifen"
 
firebird 2.1

stimmt, ist wohl das Einfachste ;-)

DeddyH 12. Mai 2011 10:37

AW: datasource wo beim Speichern und Ändern "eingreifen"
 
Dann definiere wie schon gesagt Fremdschlüssel mit der Standardlöschregel NO ACTION, und Du hast diese Funktionalität, ohne noch selbst etwas machen zu müssen.

khh 12. Mai 2011 10:41

AW: datasource wo beim Speichern und Ändern "eingreifen"
 
warum kommt man auf die einfachsten Lösungen nie selbst ?
:wall::wall:

ich danke euch


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:54 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz