Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi X Threads 1 DB. Datensatz bearbeiten / sperren (https://www.delphipraxis.net/146463-x-threads-1-db-datensatz-bearbeiten-sperren.html)

Jackie1983 20. Jan 2010 11:53

Datenbank: MySQL (XAMPP) • Version: 5.0.51a • Zugriff über: DirectMySQL / Cristian Nicola

X Threads 1 DB. Datensatz bearbeiten / sperren
 
Servus,

ich habe jetzt noch 2 Threads die auf die gleiche Datenbank zugreifen.
Habe es so gemacht das wenn ein Datensatz bearbeitet wird ein Feld auf edit gestellt wird.

Wenn jetzt aber ein anderer Thread genau so schnell ist bzw. beide gerade ein abfrage machen
welcher Datensatz frei ist, bearbeiten beide diesen Datensatz.

Wie könnte man das eventuell besser lösen. Am ende vom Thread eventuell ein Sleep(Random) damit
noch eine Differenz ensteht.

gruß

Bernhard Geyer 20. Jan 2010 12:05

Re: X Threads 1 DB. Datensatz bearbeiten / sperren
 
Am besten mit einer 3-Tier Anwendung. Das Mittel-Tier kommuniziert mit der DB und kann solche versuche des Mehrfachzugriffs auf die gleiche Ressource lösen.

Ansonsten schau dir mal das select for update-Statement an.

Jackie1983 20. Jan 2010 12:25

Re: X Threads 1 DB. Datensatz bearbeiten / sperren
 
ok noch was da zwischen "knallen" wollte ich eigentlich nicht.
Mir ist gerade noch eine Idee eingefallen, man könnte es ja auch mit
CriticalSection machen. Wenn ein Thread lesen will enter wenn er den status geändert hat leave, ich
glaube so mache ich es....


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:28 Uhr.

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