Printable Version of Topic

Click here to view this topic in its original format

IBB Forum _ ADO-Toolkit _ MultiUser Zugriff

Posted by: kochp 28. Sep 2010, 15:40

Hallo,

beim Zugriff auf eine Datenbank (Speicherort: Netzwerk) von verschiedenen Rechner stellt sich folgendes Problem.

Rechner A führt einen Update auf ein Feld in einem Datensatz durch und verifiziert danach auch noch, ob der Feldinhalt richtig gelesen wird.
--> Dadurch soll der Datensatz als >GESPERRT< markiert sein

Rechner B greift gleichzeitig auf diesen Datensatz zu und prüft ob der Datensatz als >GESPERRT< markiert ist.

Nun das Problem:
Rechner B kann beim Lesen des Datensatzes den geschriebenen Wert von Rechner A nicht erkennen.
Es sieht so aus, als ob Rechner A die Daten in einen Puffer schreibt, der zum Zeitpunkt wenn Rechner B darauf zugreift, noch nicht in die Datenbank geschrieben wurde.

Kann man das sofortige schreiben der Daten erzwingen, oder liegt das Problem ganz wo anders?

Posted by: CB 29. Sep 2010, 07:46

QUOTE (kochp @ 28. Sep 2010, 16:40) *
Hallo,

beim Zugriff auf eine Datenbank (Speicherort: Netzwerk) von verschiedenen Rechner stellt sich folgendes Problem.

Rechner A führt einen Update auf ein Feld in einem Datensatz durch und verifiziert danach auch noch, ob der Feldinhalt richtig gelesen wird.
--> Dadurch soll der Datensatz als >GESPERRT< markiert sein

Rechner B greift gleichzeitig auf diesen Datensatz zu und prüft ob der Datensatz als >GESPERRT< markiert ist.

Nun das Problem:
Rechner B kann beim Lesen des Datensatzes den geschriebenen Wert von Rechner A nicht erkennen.
Es sieht so aus, als ob Rechner A die Daten in einen Puffer schreibt, der zum Zeitpunkt wenn Rechner B darauf zugreift, noch nicht in die Datenbank geschrieben wurde.

Kann man das sofortige schreiben der Daten erzwingen, oder liegt das Problem ganz wo anders?


wenn es sich um eine Access "Datenbank" handelt, dann ist schon klar was passert: bei jedem Zugriff auf eine "Remote" Datenbank wird der Teil der Datenbank, der für die Abfrage benötigt wird auf den ausführenden Rechner kopiert und anschließend wieder zurück geschrieben. Den gleichzeitigen Zugriff von 2 Hosts kann man also auf keinen Fall verhindern. Dafür benötigt man einen echten Datenbank-Server wie z.B. den MS SQL Server 200x Express, der sorgt von alleine dafür, dass bei parallelen Zugriffen nichts durcheinander kommt ...

Posted by: Ulli-Macky 27. Oct 2011, 12:14

Hallo zusammen,

gibt es zu diesem Thema eine Lösung wenn als Datenbank eine Excel-Tabelle auf einem Netzlaufwerk liegt, auf welche mehrere Nutzer mit dem ADO-Tool zugreifen?
Besteht dabei die Möglichkeit zu sagen: z.B."Datenbank wird z.Z. von User x verwendet"?

Gruß Ulli.

Posted by: CB 30. Oct 2011, 10:33

QUOTE (Ulli-Macky @ 27. Oct 2011, 13:14) *
Hallo zusammen,

gibt es zu diesem Thema eine Lösung wenn als Datenbank eine Excel-Tabelle auf einem Netzlaufwerk liegt, auf welche mehrere Nutzer mit dem ADO-Tool zugreifen?
Besteht dabei die Möglichkeit zu sagen: z.B."Datenbank wird z.Z. von User x verwendet"?

Gruß Ulli.


nein, dazu gibt es leider keine Lösung. Eine Access DB / Excel-Tabelle ist einfach nicht dafür gemacht, dass mehrere User übers Netzwerk drauf zugreifen. Dafür gibt es dann DB-Server, wie z.B. den MS-SQL-Server Express oder mySQL und so weiter ... Meine Empfehlung wäre auch sowas zu verwenden, wenn man einen Multi-User-Zugriff übers Netzwerk braucht ...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)