Announcement

Collapse
No announcement yet.

Hilfe, Datenbank bei Multiuserzugriff gesperrt

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Hilfe, Datenbank bei Multiuserzugriff gesperrt

    Hi Leute,
    ich habe eine mittlerweile großes Datenbankprogramm erstellt, bei dem mehrere Rechner auf eine Datenbank zugreifen. Um Zugriffskonflikte zu vermeiden und Probleme durch nicht aktuelle Daten, wegen der Bufferung der Datenbank zu verhindern, habe ich auch etliche Mühe investiert. Nun habe ich mittlerweile 3 Rechner an das Netzwerk angeschlossen, die mit der Datenbank arbeiten wollen und bekomme plötzlich das Problem, daß mir die Dateien PDOXUSRS.LCK oder PDOXUSRS.NET einen Strich durch die Rechnung machen wollen.
    Zu diesem Zweck habe ich mal ein Testprogramm geschrieben, bei dem die Datenbank so richtig benutzt wird, und da bekomme ich beim Start eines dritten Programmes sofort die Fehlermeldung: "Verzeichnis wird von einer anderen .NET Datei kontrolliert." Dann wird mir das Verzeichnis C: genannt, in dem sich PDOXUSRS.NET befindet und der Alias-Pfad der Datenbank, in dem sich die Datei PDOXUSRS.LCK befindet.

    Leider kann ich nirgends eine Hilfe für Multiuserzugriffe finden. Es muß doch eine einfache Möglichkeit geben mit dem mitgelieferten Kram von Borland mit mehreren Rechner auf einer Datenbank rumzuackern, ohne noch irgend so riesiege und teure Zusatzprodukte zu kaufen.

    Wer weiß Rat oder hat ein kleines Beispiel auf Lager, mit dem er mir weiterhelfen könnte ?

  • #2
    Hallo Peter,

    Du musst der Property NetFileDir von Session das gemeinsam benutzte Netzlaufwerk zuweißen und dieses anschließend den beutzten Tabellen in DatabaseName NetFileDir zuweißen, Keinen ALias benutzen. Das folgende Beispiel funktioniert bei mir so.
    Gruß Horst

    Beispiel:
    // Für gemeinsamen Netzzugriff
    // Allen Datenzugriffselementen dem Property DatabaseName NetFileDir zuweisen
    // ACHTUNG: dürfen nicht geöffnet (active) sein

    #ifndef LOKAL
    Session->NetFileDir = "\\\\Qbit01\\Server\\Projekte\\Verwaltung\\Tables" ;

    CloseAll();
    // Datentabellen
    tblPRJ->DatabaseName = Session->NetFileDir;
    tblTPRJ->DatabaseName = Session->NetFileDir;
    .
    .
    .
    .
    .
    // SQL-Abfragen
    qrySubprojects->DatabaseName = Session->NetFileDir;
    qrySQL->DatabaseName = Session->NetFileDir;
    #endi

    Comment

    Working...
    X