Mailinglisten-Archive |
Hallo zusammen, ich schreibe gerade eine Anwendung mit PHP. Für die Datenbankzugriffe benutze ich eine ODBC-Verbindung. Ich möchte Benutzern die Möglichkeit geben bestimmte Datensätze in der Datenbank zu ändern. Um sicherzustellen, daß nicht ein anderer Benutzer den gleichen Datensatz schon geändert und in die DB-eingespielt hat, lese ich vor dem Update einen Timestamp aus der entsprechende Tabelle und vergleiche ihn mit dem Timestamp beim ersten lesen. Stimmen diese Werte überein, kann geschrieben werden, ansonsten erscheint eine entsprechende Meldung am Bildschirm. Jetzt kann es aber vorkommen, das zwischen dem Auslesen des Timestamps, der Überprüfung auf Gleichheit und dem Update jemand anderes in die Datenbank hineinschreibt. Das möchte ich natürlich auch verhindern. Wie kann soetwas geschehen? Ich dachte an folgendes: BEGIN TRANSACTION select .... Prüfung der Bedingung update ... COMMIT TRANSACTION Ich bin weiß aber nicht, ob bei dieser vorgehensweise wirklich die Zeile gesperrt wird. Welche anderen Möglichkeiten gibt es noch? bis dann. Dieter
php::bar PHP Wiki - Listenarchive