Hi,
hast du eventuell mal den Rat befolgt, den dir Mysql als Teil der Fehlermeldung ausgibt?
check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELIMITER $$
Also was tut dieses DELIMITER Zeugs? Und kann man das ganze vielleicht auch ohne selbiges ausführen? Also nur
CREATE PROCEDURE Test.Anmelden(IN BenutzerName CHAR(32), IN Passwort CHAR(32), OUT Angemeldet BOOL)
BEGIN
DECLARE erfolg BOOL DEFAULT FALSE;
DECLARE passw CHAR(32);
SELECT Passwort INTO passw FROM Test.t_Benutzer WHERE Name=BenutzerName;
IF passw=Passwort THEN
erfolg=TRUE;
END IF;
SELECT erfolg INTO Angemeldet;
END
Ausserdem kannst du doch gleich so schreiben (denke ich mal)
SELECT TRUE INTO erfolg
FROM Test.t_Benutzer
WHERE Test.t_Benutzer.Name =BenutzerName AND
Test.t_Benutzer.Passwort=Passwort
Wenn es da kein Match gibt sollte auch kein TRUE in deine Erfolgsvariable geschrieben werden.
Allerdings finde ich die Variablennotation etwas doppeldeutig. Die Variable für Passwort heisst "Passwort" und die Spalte auch? Gibt das nicht evendudel Probleme?
Gruss, Frank