Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: Gleichzeitige Änderung des Datensatzes am anderen PC

  Alt 27. Jan 2008, 20:07
Ich würde so etwas nicht über eine Sperre realisieren.

In einem gut strukturierten Betrieb wird es wohl sehr selten zwei Personen geben, die die gleichen Daten eines Datensatzes ändern. Bei Kundenstammdaten wird die Adresse z.B. sehr selten von zwei Personen gleichzeitig verändert, aber vielleicht ändert der eine die Adresse und der Andere die Bankverbindung.

Man sollte ein Reconcile in Erwägung ziehen.

Du lädst Dir einen logischen Datensatz, Das ist Version 1.
Der Anwender ändert ihn und will ihn speichern. Das ist Version 2.
Vor dem Speichern lädst Du den Datensatz nochmal. Das ist Version 1a.

Unterschiede zwischen V1 und V2 hat der Anwender vorgenommen. Nennen wir die gemachten Änderungen A1.
Unterschiede zwischen V1 und V1a haben ANDERE Anwender vorgenommen. Diese Änderungen nennen wir A2.

In den Fällen, in denen A1 und A2 disjunkt sind, kann man getrost die Änderungen in V2 abspeichern, denn die tangieren in keinem Fall die vorherigen Änderungen.

Nur wenn es Felder gibt, die sowohl in A1 als auch in A2 sind, haben wir eventuell einen Änderungskonflikt vorliegen. Aber auch nur dann, wenn die Änderungen and den einzelnen Feldern unterschiedlich sind.

Welche Änderung denn hier nun die richtig ist, können nur die Mitarbeiter selbst bestimmen. Hier sollte bei den die Änderung betreffenden Mitarbeitern ein Dialog erscheinen, der auf den Konflikt aufmerksam macht und sie auffordern, zu entscheiden, welche Version denn nun die Richtige ist.

Mit diesem Verfahren wirst Du bei interaktiven Änderungen (also Änderungen, die am Bildschirm von Menschen vorgenommen werden), i.A. nur sehr selten auf Konflikte treffen. Und wenn, dann sind dies zum Einen auch Probleme in der Unternehmensdisziplin, und zum Anderen schnell lösbar.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat