Moin. Ich habe hier ein altes Stück Software liegen bei dem ich einen Fehler nicht verstehe. Das der Code nicht schön ist weiß ich selber. Wird deshalb auch umgeschrieben.
Ich benutze TJVLoginDialog und diese sind die beiden benutzen procedures.
Delphi-Quellcode:
procedure TfrmMain.JvLoginDialog1BeforeLogin(Sender: TObject);
begin
ADOCon1.Close;
ADOCon1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' +
'datei.mdb;Persist Security Info=False';
ADOCon1.Open;
end;
procedure TfrmMain.JvLoginDialog1CheckUser(Sender: TObject; const UserName,
Password: string; var AllowLogin: Boolean);
var
tblUs: TADOTable;
i: integer;
begin
userID := 0;
userNa := '';
tblUs := TADOTable.Create(self);
tblUs.Connection := ADOCon1;
tblUs.TableName := 'Nutzer';
tblUs.Open;
if tblUs.Locate('Kurz', UserName, []) then
if tblUs.FieldByName('Password').AsString = Password then
begin
userID := tblUs.FieldByName('UserID').AsInteger;
userNa := tblUs.FieldByName('Kurz').AsString;
end;
tblUS.Close;
tblUs.Free;
if userID = 0 then
begin
ShowMessage('Ungültiger Benutzername. Anwendung wird beendet.');
ADOCon1.Close;
JvLoginDialog1.TerminateApplication;
end;
end;
Nun das was ich nicht verstehe. Zu nicht reproduzierbaren Zeitpunkten kommt es vor das der eingegebene Benutzername als neuer Eintrag in der Tabelle auftaucht. Das ich jedoch keinerlei Inserts benutze ist es mir ein Rätsel wie die da rein kommen.
Evtl. kann ja einer von euch dieses Rätsel lüften.
Gruß
tr909