Suchergebnisse
Suchergebnisse 1-15 von insgesamt 15.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
-
Guten Morgen, meine Anwendungen sind meist GUI Anwendungen, wo Daten von einer Datenbank angezeigt und verändert werden können. Also nicht wirklich was kompliziertes. Nun wollte ich euch fragen, wie ihr so eine Anwendung im Netzwerk macht, wenn mehrere Benutzer auf die gleichen Datenbanken zugreifen. Speziell interessiert mich das "Record Locking". Ich muss ja im Netzwerk den geladenen Datensatz für die anderen Benutzer sperren, damit keine Datenkonflikte auftreten. D.h. ein Benutzer die Daten d…
-
Gleichzeitig wird versucht, einen Timestamp in den Datensatz zu schreiben - das ist der Lock. "Lock holen" darf nur gehen, wenn der vorherige Timestamp abgelaufen ist. Der Timesstamp ist ja eine momentane Zeit. Was meinst du mit "abgelaufen", wenn der Wert wieder auf Date.MinValue gesetzt wird? Der Timestamp sagt aus, wann der Lock verfällt - falls der User seine Eingabe nie beendet. Wie kann ich den Lock verfallen lassen ohne den Wert zu ändern? Denke ich da zu kompliziert oder vestehe ich dein…
-
Also ich danke euch für eure Anregungen. Ich habe mich jetzt für folgende Variante entschieden und werde dies einmal testen: 1) Es gibt in der Datenabse eine Tabelle: LockTable, wo ich mir alle gesperrten Datensätze (Tabelle, ID, PC-Name, Verfallszeit) merke 2) Soll ein Datensatz zur Bearbeitung geladen werden, wird vorher geprüft, ob dieser in der LockTable vorhanden ist (Tabelle, ID) und ob die Verfallszeit (Datum und Uhrzeit) noch aktuell ist Verfallszeit ist gmeint, dass ich die aktuelle Zei…
-
Zitat von ErfinderDesRades: „Und eine Lock-Methode, die ein IDisposable LockObjekt zurückgibt.“ Das weiß ich jetzt nicht, wie das geht? Statische Methoden haben ja kein Dispose oder ? Using setzt aber eine Dispose-Methode voraus oder mache ich eine eine Methode, welche Dispose heißt? Sorry, da habe ich zu wenig Kenntnisse... EDIT: Oder meinst du eine Klasse (LockObject) mit den Eigenschaften des Lock Zustandes, welcher ein IDisposable beinhaltet?
-
Also in der Anwendung gibt es zum Editieren von Datensätzen eigene Eingabefenster. D.h. ich würde, nur wenn ein Benutzer einen Datensatz ändern möchte vorher diese Prüfung machen. Beim Durchblättern/Suchen mache ich nix. Nach unseren Erhebungen, wird eher selten etwas geändert, weil wie oft ändert sich eine Kundenadresse? oder Daten von einem Fahrzeug? etc. Nachdem aber auf mehreren Standorten Zugriff auf die Daten besteht, müssen wir eine Prüfung implementieren. Bisher wurde dies im Programm er…
-
Zitat von MrTrebron: „Prüfst du auch vor dem Update eines Datensatzes ob noch ein Lock besteht? Use Case: User A lockt einen Datensatz zum Schreiben, Speicher nicht hat aber den Datensatz weiter geöffnet und das Lock läuft ab. User B öffnet den gleichen Datensatz und beantragt ein Lock, erhält dieses weil der Lock von User A abgelaufen ist. User B speichert seine Änderungen. User A fällt auf, dass er seine Änderungen noch nicht gespeichert hat und speichert.“ Ja, das stimmt. Ich prüfen, ob ich n…
-
Zitat von ErfinderDesRades: „Ich meine ersteres: Die LockObject-Klasse soll IDisposable implementieren. Die DataRow.Lock-Extension-Methode soll ein LockObject erstellen, welches IDisposable ist. Das LockObject enthält ausserdem Informationen über den Lock-Hole-Versuch, v.a., obs geklappt hat. Die Dispose-Methode des LockObject soll dann in der DB den Lock wieder freigeben.“ Ist jetzt keine Extension aber ist das so gemeint? Prinzipiell gemeint. VB.NET-Quellcode (30 Zeilen)
-
Anbei mein Basiscode für das Sperren von Datensätzen in einer MySQL Umgebung. @ErfinderDesRades, ich habe die Klasse nicht wirklich in eine Extension gepackt, weil diese in unserer Anwendung nicht einsetzbar ist. Dennoch habe ich versucht meine Shared Klasse in einer Extension zu benutzen. Vielleicht würde auch das ausreichen. 1) Die Basis der Shared Klasse ist eine LockInfo Klasse, wo die Locking Informationen ausgelesen werden können bzw. gespeichert werden. VB.NET-Quellcode (35 Zeilen) 2) Das…
-
Ich wünsche mir eigentlich nur, wenn jemand die Klassen in einem Projekt verwendet, mir eine Rückmeldung zu geben. Das Zip ist kein eingenständiges Programm (Solution). Ist auch nicht so gedacht. Es sind die Klassen als einzelne Dateien und diese sollten jederzeit in ein bestehendes Projekt importiert werden können.
-
Danke für die Rückmeldungen. Also meine Locking Klasse ist ein statische Klasse. Beschreibung siehe Post# 31 von mir. Ja, wir verwenden die Klasse und sie funktioniert für unsere Bedürfnisse. Allerdings werden in unserer Anwendung nicht oft Datensätze geändert. Wir unterscheiden in unserer Anwendung zwischen Datensätze ansehen, Datensätze editieren oder Datensätze hinzufügen. Dafür gibt es eigene Formulare. Gesperrt wird nur bei Datensätze editieren. Unsere Anwender sitzen in Europa verteilt und…