Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Warum sperrt Firebird den gemeinsamen Zugriff ? (https://www.delphipraxis.net/47392-warum-sperrt-firebird-den-gemeinsamen-zugriff.html)

hsbc 10. Jun 2005 13:31

Datenbank: Firebird • Version: 1.5.2 • Zugriff über: Delphi 7 Professional + Zeos-Lib.

Warum sperrt Firebird den gemeinsamen Zugriff ?
 
Hallo allerseits,

Wenn ich meine Anwendung im lokalen Netzwerk von 2 Rechner aus gleichzeitig verwende, dann gibt es Probleme beim gleichzeitigen Zugriff auf die Tabellen.

Computer 1 = Server IP: 192.168.000.002
Computer 2 = Client IP: 192.168.000.005
Die ZConnection befindet sich auf einem DatenModul und wird gemeinsam verwendet.
Die ZQuery's befinden sich in den jeweiligen Formularen, haben aber den gleichen Namen (ZQ_Anbot), was aber funktionieren müsste, da sie ja auf verschiedenen Formularen liegen.

TransactIsolationLevel der ZConnection = tiSerializeable
ReadOnly der ZConnection = false

Die Sperre tritt nach einem Schreibzugriff auf die Tabelle ein. Muss ich hier nach dem Schreibzugriff explizit etwas freigeben?
Die Sperre wird erst beendet, wenn ich auf dem anderen Rechner den Programmzweig beende, das heisst, die ZQuery dort geschlossen wird.

Wie kann ich erreichen, dass mehrere Anwender im Netzwerk gemeinsamen Schreibzugriff auf die Tabelle haben? Die Anwendung ist so aufgebaut, dass mehrere Anwender nie den gleichen Datensatz bearbeiten können und trotzdem funktioniert das nicht.

mfg
Herbert

Bernhard Geyer 10. Jun 2005 13:36

Re: Warum sperrt Firebird den gemeinsamen Zugriff ?
 
Zitat:

Zitat von hsbc
Die Sperre tritt nach einem Schreibzugriff auf die Tabelle ein. Muss ich hier nach dem Schreibzugriff explizit etwas freigeben?
Die Sperre wird erst beendet, wenn ich auf dem anderen Rechner den Programmzweig beende, das heisst, die ZQuery dort geschlossen wird

Willst Du von PC2 ohne zu schließen der Query auf den gleichen Datensatz schreibend zugreifen und ist auf PC2 die Query vor dem bearabeiten auf PC1 geöffnet worden?

hsbc 10. Jun 2005 14:07

Re: Warum sperrt Firebird den gemeinsamen Zugriff ?
 
Hallo Bernhard,

nein, auf den gleichen Datensatz kann in der Regel nicht gleichzeitig zugegriffen werden, da das System so aufgebaut ist:

Primärer Key besteht aus: ANBOTNR + SATZNR

und jeder User hat seine eigene ANBOTNR-Serie, daher dürfte da schon mal kein Konflikt zustandekommen.

Was mir aber in der Zwischenzeit aufgefallen ist, ist der TransactIsolationLevel, welchen ich auf tiSerializeable gestellt hatte. Ich probiere derzeit mit der Einstellung auf none - hier dürfte es so weit ich bis jetzt gesehen haben, funktionieren, hoffentlich war dies kein Zufall.

mfg
Herbert


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:40 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