Gleichzeitiger Datenbankzugriff

04/12/2009 - 20:16 von Matthias Frey | Report spam
Hallo,

ich hàtte da eine grundsàtzliche Frage: ich habe eine Delphi-Anwendung die
auf mehren PCs làuft und auf Datenbank zugreift (in meinem Falle MyDac/MySQL).
Bei einer Aktion (Mausklick) laufen dann mehrere Datenbank-Operationen ab.
Etliche Selects, dann einige Delete, ein Update, dann einige Inserts.
Das làuft relativ flott ab.

Wenn nun zwei Clients fast gleichzeitig eine solche Aktion machen, kann
es ja doch trotzdem vorkommen, dass die Datenbank-Operationen sich
überlappen. Die Folgen sind dann relativ unüberschaubar.

Was macht an nun üblicherweise in solchen Fàllen?

Bei gleichzeitigen Prozessen oder Threads auf einem PC kenne ich etliche
Möglichkeiten.

Transaktionen helfen hier doch auch nicht? Die helfen doch nur wenn
Fehler auftreten. Hier sind die Fehler wohl kaum vom Server erkennbar.

Oder muss ich da selber was entwickeln damit sich die Clients gegenseitig
sperren?


Grüße
Matthias
 

Lesen sie die antworten

#1 Arno Garrels
04/12/2009 - 20:48 | Warnen spam
Matthias Frey wrote:
Hallo,

ich hàtte da eine grundsàtzliche Frage: ich habe eine
Delphi-Anwendung die auf mehren PCs làuft und auf Datenbank zugreift
(in meinem Falle MyDac/MySQL). Bei einer Aktion (Mausklick) laufen
dann mehrere Datenbank-Operationen ab. Etliche Selects, dann einige
Delete, ein Update, dann einige Inserts.
Das làuft relativ flott ab.

Wenn nun zwei Clients fast gleichzeitig eine solche Aktion machen,
kann
es ja doch trotzdem vorkommen, dass die Datenbank-Operationen sich
überlappen. Die Folgen sind dann relativ unüberschaubar.

Was macht an nun üblicherweise in solchen Fàllen?

Bei gleichzeitigen Prozessen oder Threads auf einem PC kenne ich
etliche Möglichkeiten.

Transaktionen helfen hier doch auch nicht?



Doch, tun sie.

Die helfen doch nur wenn
Fehler auftreten. Hier sind die Fehler wohl kaum vom Server erkennbar.



Was ist denn ein Fehler?

Oder muss ich da selber was entwickeln damit sich die Clients
gegenseitig sperren?



Genau dafür gibt es die Transaktionen und die verschiedenen
Transisolationen, oder wie das Zeugs auch immer übersetzt heißen mag.

Arno Garrels

Ähnliche fragen