Einzelnen Beitrag anzeigen

mjank

Registriert seit: 5. Dez 2018
12 Beiträge
 
#3

AW: ADS_LOCAL Zugriff mehrer Nutzer

  Alt 13. Dez 2018, 16:59
Delphi-Quellcode:
procedure Tfrm_Hauptform.Timer1Timer(Sender: TObject);
var
  FDock : boolean;
  Fa : integer;
  FClients : integer;

begin

  Timer1.Enabled := false;

  try

    //
    // ALS-Datenbanken
    //

    AdsConnection_Daten.IsConnected := False;
    AdsConnection_Daten.ConnectPath
      := extractfilepath(application.exename) + 'Daten';
    AdsConnection_Daten.IsConnected := true;


    // Datenbank "DB_Projekte" prüfen und öffnen
    If FileExists(extractfilepath(application.exename)
        + 'Daten\DB_Projekte.adt')
      then begin

        DB_Projekte.Exclusive := false;
        DB_Projekte.Active := false;
        DB_Projekte.TableName := 'DB_Projekte.ADT';
        DB_Projekte.Active := true;
        DB_Projekte.edit;


  FClients := Panel1.DockClientCount - 1;
  if FClients = (-1) then FDock := true;


  for Fa := 0 to FClients do
   begin
     Panel1.DockClients[Fa].hide;
     if Fa = FClients
       then FDock := true
       else FDock := false;
   end;

  repeat
    if FDock = true
      then begin

        frm_Hauptform.Caption := 'Projekte';
        frm_Projektsuche.ManualDock(frm_Hauptform.panel1,nil,alclient);
        frm_Projektsuche.show;
      end;
  until FDock = true;


      end;

   except
     on EADSDatabaseError do
       begin
         if MessageDlg(
           'Das Programm ist bereits durch einen anderen Nutzer geöffnet.'
           + #13 +
           'Es kann immer nur ein Nutzer zeitgleich arbeiten.',
           mtWarning, [mbOk], 0) = mrOk then
           begin
             //Close;
           end;
       end;

   end;
end;
In einer anderen kleinen Anwendung hatte ich das Problem schon einmal.
Dort war ich jedoch der einzige Nutzer und habe es mit einer Fehlermeldung abgefangen,
falls ich aus Versehen die Anwendung zweimal gestartet habe.

Ist es grundsätzlich richtig, dass ich mit mehreren Nutzern zugreifen kann?
Derzeit sind es maximal drei.
  Mit Zitat antworten Zitat