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;