Zitat von
Bernhard Geyer:
Am
SQL-Statement kann ich nichts verdächtiges erkennen.
Aber nimm mal statt Value -> AsString.
ADOParameter können entweder so
Delphi-Quellcode:
ADOdataset.Parameters.ParamValues['user'] := username; // Variante A
// oder so
ADOdataset.Parameters.ParamByName('user').Value := username; // Variante B
befüllt werden.
Ich verwende meist Variante A, da weniger Schreibarbeit.
.AsString, .AsInteger, u.s.w. gibt es bei den Parametern nicht.
Zum Debuggen sollte man besser kein With ... Do Anweisung verwenden, sondern alles komplett ausschreiben.
Zumindest Delphi 2-5 können sonst die Inhalte beim Debuggen nicht anzeigen.
Wichtig: wenn die INSERT-Anweisung korrekt aussieht, aber dennoch Syntaxfehler gemeldet wird, liegt es meist an der Verwendung von
reservierten Wörtern. Die Wörter "user" und "domain" könnten je nach
SQL-Dialekt schon eine eigene Bedeutung haben.
Ich würde empfehlen, die Feldnamen zu ändern.
PS:
Delphi-Quellcode:
// das gefällt mir überhaupt nicht
// es sieht nach einem Speicherleck aus
with TCipher_Rijndael.Create(PW, nil) do
begin
ParamByName('pw').Value := EncodeString(p.Passwort);
end;
// ich würde das Passwort zunächst direkt im Klartext speichern
// nachdem das funktioniert hat, würde ich das verschlüsselte PW speichern