Einzelnen Beitrag anzeigen

Delphi.Narium

Registriert seit: 27. Nov 2017
2.508 Beiträge
 
Delphi 7 Professional
 
#3

AW: Prüfen, ob Access-DB mit Passwort geschützt ist

  Alt 7. Okt 2018, 11:00
Sinngemäß ungefähr sowas (ungetestet);
Delphi-Quellcode:
function CheckConnect : Boolean;
begin
  Result := False;
  Try
    Connection.Connect;
    Result := True;
  except
    on e : Exception do begin
      // Fehler sinnvoll verarbeiten.
    end;
  end;
  Connection.DisConnect;
end;

var
  sl : TStringList;
  sConSave : String;
  sUser : String;
  sPassword : String;
begin
  sConSave := Connection.ConnectionString;
  sl := TStringList.Create;
  sl.Delimiter := ';'
  sl.StrictDelimited := True;
  sl.DelimitedText := Connection.ConnectionString;
  sUser := sl.Values['User'];
  sPassword := sl.Values['Password'];
  // Ab hier wird getestet:
  // Zuerst ohne Benutzer und Passwort.
  sl.Values['User'] := '';
  sl.Values['Password'] := '';
  Connection.ConnectionString := sl.DelimitedText;
  if CheckConnect then begin
    // Verbindung ohne Daten möglich, was sinnvolles machen ...
    MessageDlG('Bitte Benutzernamen und Passwort für die Datenbank vergeben.',mtInformation,[mbOk],0);
  end;
  // Mit irgendeinem Benutzer aber ohne Passwort.
  sl.Values['User'] := 'qwertz';
  sl.Values['Password'] := '';
  Connection.ConnectionString := sl.DelimitedText;
  if CheckConnect then begin
    // Verbindung mit anderem Benutzer und ohne Passwort möglich, was sinnvolles machen ...
    MessageDlG('Bitte Benutzernamen und Passwort für die Datenbank vergeben.',mtInformation,[mbOk],0);
  end;
  // Mit angegebenem Benutzer aber ohne Passwort.
  if sUser <> 'then begin
    sl.Values['User'] := sUser;
    sl.Values['Password'] := '';
    Connection.ConnectionString := sl.DelimitedText;
    if CheckConnect then begin
      // Verbindung mit Benutzername, aber ohne Passwort möglich, was sinnvolles machen ...
    MessageDlG('Bitte ein Passwort für die Datenbank vergeben.',mtInformation,[mbOk],0);
    end;
  end;
  // Mit angegebenem Benutzer und anderem Passwort.
  sl.Values['User'] := sUser;
  sl.Values['Password'] := Format('*%s*',[sPassword]);
  Connection.ConnectionString := sl.DelimitedText;
  if CheckConnect then begin
    // Verbindung mit angegebenem Benutzer und anderem Passwort möglich, was sinnvolles machen ...
    MessageDlG('Bitte ein Passwort für die Datenbank vergeben.',mtInformation,[mbOk],0);
  end;
  // 'ne Kombination / Variante vergessen?
  // Hier sinngemäß ergänzen.
  // ...
  sl.Free;
  //
  // "Alten" Zustand wieder herstellen.
  Connection.ConnectionString := sConSave;
end;
  Mit Zitat antworten Zitat