Hallo Thorsten.
Danke für den Tipp
Ich hab allerdings schon eine ähnliche Abfrage eingebaut, nur nicht mit angezeigt, weil es eben an dieser einen Zeile liegen muss. Die komplette Prozedur sieht so aus:
Delphi-Quellcode:
procedure TfrmLogin.Button_LoginClick(Sender: TObject);
var
query: PChar;
id: Integer;
passwort:
String;
begin
if Trim(ComboBox_Benutzer.Text) <> '
'
then
begin
if Trim(Edit_Passwort.Text) = '
'
then
begin
MessageDlg('
Bitte gültiges Passwort eingeben.', mtInformation, [mbOK], 0);
ModalResult := mrNone;
end
else
begin
id := Integer(ComboBox_Benutzer.Items.Objects[ComboBox_Benutzer.ItemIndex]);
query := PChar('
SELECT passwort FROM mitarbeiter WHERE id=' + IntToStr(id));
mysql_real_query(_myCon,
query, Length(
query));
_myRes := mysql_store_result(_myCon);
if _myRes =
nil then
begin
ShowMessage('
Es konnten keine Datensätze zurückgebenen werden. Ursache: ' + mysql_error(_myCon));
Exit;
end;
_myRow := mysql_fetch_row(_myRes);
passwort := _myRow[0];
if Edit_Passwort.Text = passwort
then
LoginOK := True
else
begin
MessageDlg('
Falsches Passwort.', mtInformation, [mbOK], 0);
ModalResult := mrNone;
end
end
end
else
begin
MessageDlg('
Bitte einen Benutzer auswählen.', mtInformation, [mbOK], 0);
ModalResult := mrNone;
end;
end;
Wie gesagt, unter Windows XP schmeisst er auch keinen Fehler aus, aber unter Windows 2000.
Die ComboBox wird auch ordentlich angezeigt, nur sobald man dann auf "Login" klickt, kommt die Fehlermeldung.
Zur Not werd ich wohl versuchen irgendwas über den ComboBox_Benutzer.ItemIndex oder den ComboBox_Benutzer.Text zu basteln
Gruß
Micha