Mailinglisten-Archive |
Hallo Katja, der Datensatz bleibt bis zum Release gesperrt. Wenn Du vergisst, die Sperre aufzuheben, bis zum nächsten Neustart des MySQL-Servers. Vielleicht solltest Du regelmäßig die Tables flushen (Flush Tables), dann werden meines Wissens auch alle Sperren gelöscht... Allerdings weiß ich das nicht genau, habe mich auch nie eingelesen. Andreas -----Ursprüngliche Nachricht----- Von: Katja May [mailto:katja at delphiclub.de] Gesendet: Dienstag, 18. Februar 2003 20:59 An: mysql-de at lists.4t2.com Betreff: Re: Datensatz / Tabellen Sperre Hallo Andreas, erst ein mal Danke, es funktioniert jetzt ! Wenn der Datensatz bereits gesperrt ist, wie kann ich ermitteln wie lange das noch so sein wird ? Der Kunde wünscht minimalen Netzwerkverkehr ! Katja ----- Original Message ----- From: "Andreas Honnerlage" <MySql at honnerlage.de> To: <mysql-de at lists.4t2.com> Sent: Tuesday, February 18, 2003 7:50 PM Subject: AW: Datensatz / Tabellen Sperre Hallo Katja, es gibt die Funktionen Get_Lock und Release_Lock. Du kannst folgendermaßen vorgehen. Zuerst schickst Du dem Server ein "Select Get_Lock(5900,0)" Er wird entweder mit 1 oder 0 antworten. Bei 1 hast Du den Lock bekommen und kannst den Datensatz aufrufen. Bei 0 ist der Datensatz schon gesperrt. Zuerst zum Syntax: Get_Lock fordert vom Server die Bestätigung, daß kein weitere User oder keine Instanz einen Get_Lock angefordert hat, der denselben Wert hatte. Dabei kommt es nicht darauf an, was Du dem Server für einen Wert schickst, sondern nur, daß er absolut eindeutig ist für Deinen Datensatz. Select Get_Lock ('Müller,Jan,Essen',0) wäre ebenfalls OK. Danach weiß deine Anwendung, daß sie diesen Datensatz aufrufen kann und daß ihr Zugriff exklusiv ist. Get_Lock verhindert nicht das Aufrufen dieses Datensatzes. Auch das Zurückschreiben, verändern, löschen usw. wird in keiner Weise verhindert. Hinter dem Komma [Get_Lock(5900,0)] steht die Anzahl der Millisekunden, die der Server darauf warten soll, das Lock zu erhalten. Dementsprechend muß auch Deine Anwendung auf die Antwort warten. Nachdem der Datensatz abgeschlossen ist, solltest Du nicht vergessen, ein Select Release_Lock(5900) zu schicken, damit der Server diese ID wieder anderweitig vergeben kann. Viel Erfolg.. Andreas -----Ursprüngliche Nachricht----- Von: Katja May [mailto:katja at delphiclub.de] Gesendet: Dienstag, 18. Februar 2003 19:21 An: mysql-de at lists.4t2.com Betreff: Datensatz / Tabellen Sperre Hallo Liste, Ich würde gern wissen wie ich eine Datensatzsperre einrichten kann ? oder ist das nicht möglich ? Es gibt PHP Clients und Clients in C (Admin (Linux) und Remote mit lokaler Kopie der MySQL-DB (Windows)). Beim Update des Servers treten div. Probleme auf. Oder ist das schlechtes Datenbankdesign ? Ich wäre für jeden Tip dankbar ! Katja -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive