Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi BDE - multiuser (https://www.delphipraxis.net/50607-bde-multiuser.html)

Geraldine83 28. Jul 2005 10:15

Datenbank: Paradox • Zugriff über: grad keine Ahnung!

BDE - multiuser
 
Hallo

Ich weiß das Thema wurde schon oft angesprochen. Habe auch in vielen Foren nachgeschaut, aber mein Programm funktioniert nicht.

Ich habe mehrere Programme. Es sollen mehrere Benutzer gleichzeit öffnen und benutzen können. Oder Ein Benutzer öffnet gleichzeitig mehrere Programme, die alle die gleiche Datenbanken benutzen.

In der BDE habe ich alle eingestellt.

NetDir: "H:\ProDaten" (Netzlaufwerk, in dem die Datenbanken vorhanden sind)
LocalShare auf true
Allias Pfad auf den gleichen von NetDir.

funktioniert nicht -> wird von einer NET-Datei benutzt

Dann habe ich in FormCreate Session hinzugefügt:
Session1.NetFileDir := 'H:\Prodaten';
Session1.PrivateDir := 'C:\';

funktioniert nicht -> Verzeichnis in Gebrauch

Dann habe ich eine Komponente hinzugefügt - TSession -
Session1.Active := false;
Session1.NetFileDir := 'H:\Prodaten';
Session1.PrivateDir := 'C:\ProWorks\Auftrag';
Session1.Active := true;

es funktioniert, aber ich muss für jedes Programm einen extra Ordner (PrivateDir) erstellen.
Ich glaube es geht auch einfacher. Oder?
Oder habe ich einen Denkfehler?

Ich weiß nicht mehr weiter. Habe so viel schon gelesen und ausprobiert, und bin verwirrt.

Und was hat das mit dem Local Share auf sich, denn ich habe es mal auf false gesetzt und es funktioniert. Aber das ist nicht so gut, oder?

Gruß von Jerry :wiejetzt:

Geraldine83 28. Jul 2005 10:18

Re: BDE - multiuser
 
Ich greife über BDE auf die Datenbanken zu

marabu 28. Jul 2005 11:06

Re: BDE - multiuser
 
Hi Jerry,

herzlich willkommen in der Delphi-PRAXiS.

Das Einfache zuerst: LOCAL SHARE ist in der Regel FALSE, da die BDE einen eigenen Lock-Mechanismus verwendet. Nur wenn konkurrierende Zugriffe durch nicht BDE-Anwendungen zu befürchten sind, dann muss zusätzlich das file/record-locking des Betriebssystems zugeschaltet werden.

Das locking geschieht über paradox lock files im Daten-Verzeichnis. Diese lock files enthalten eine Referenz auf den network control file, der unter NET DIR abgelegt wird. So können einzelne client apps prüfen, ob der gleiche control file verwendet wird, oder ob eine Fehlkonfiguration vorliegt.

Für eine saubere Installation löscht du alle lock files, richtest auf jedem client eine Laufwerksverbindung auf das "gleiche" net share ein - z.B. net use P: \\pdxfileserver\db02 /persist o.ä - und dann geht das. Der Laufwerkbuchstabe darf sich unterscheiden, aber nur der.

Grüße vom marabu

Thanatos81 28. Jul 2005 11:10

Re: BDE - multiuser
 
Also ich lege als PrivatDir immer ExtractFileName(paramstr(0)) fest, also das eigene Programmverzeichniss. Damit klappts eigentlich ganz gut.

Geraldine83 28. Jul 2005 11:12

Re: BDE - multiuser
 
Herzlichen Dankeschön für eine (schnelle) Antwort, aber was soll ich jetzt am besten einstellen? LocalShare auf true oder false? Oder muss ich noch was anderes Einstellen?

Jeder Arbeitsplatz hat eine Laufwerkverbindung zu dem Datenbankverzeichnis.

marabu 28. Jul 2005 11:18

Re: BDE - multiuser
 
Wenn ich mich richtig erinnere hatte ich af dem server ein Paradox-Verzeichnis freigegeben, welches ich als NET DIR verwendet habe. Meine Paradox-Datenbanken waren in Unterverzeichnissen davon abgelegt. LOCAL SHARE auf FALSE, weil ich keine parallelen Zugriffe über Fremdsoftware vorgesehen hatte. PrivateDir war bei mir im userprofile abgelegt, aber wenn du auch mehrere Instanzen deines Programms auf der gleichen Maschine zulässt, dann reicht das eventuell nicht.

marabu

MaBuSE 28. Jul 2005 12:57

Re: BDE - multiuser
 
Zitat:

Zitat von Geraldine83
...aber was soll ich jetzt am besten einstellen? LocalShare auf true oder false? Oder muss ich noch was anderes Einstellen?

Einfach mal im BDEAdmin auf die F1 Taste drücken und lesen :-)

in der BDEADMIN.HLP steht
LOCAL SHARE
Legt fest, wie eine Dateisperrung zwischen einer aktiven BDE-Anwendung und einer aktiven Nicht-BDE-Anwendung durchzuführen ist. Möchten Sie mit einer BDE- und einer Nicht-BDE-Anwendung dieselben Dateien gleichzeitig bearbeiten, muß die Option auf TRUE gesetzt werden. (Sie brauchen LOCAL SHARE nicht auf TRUE zu setzen, wenn beide Anwendungen nicht gleichzeitig geöffnet sein müssen.)
Vorgabewert: FALSE


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