Einzelnen Beitrag anzeigen

stefan681

Registriert seit: 16. Jun 2005
18 Beiträge
 
#1

Sonderzeichen beim abspeichern in der DB funktioniert nicht

  Alt 21. Apr 2010, 16:06
Datenbank: Advantage • Version: 9.10 • Zugriff über: Advantage Komponeten
Hallo,

wir haben folgendes Problem:

Ein verschlüsseltes Passwort soll in einem String-Feld in der Datenbank abgespeichert werden.

In diesem Passwort sind bewusst auch Sonderzeichen enthalten (ASCII Bereich von 32 -255)

Dieses Passwort wird nicht richtig in die Datenbank abgespeichert.

Wir übergeben das Passwort einer Query und schreiben es in die Datenbank.

Delphi-Quellcode:
    
query.sql.text:='update Benutzer set passwort=:Ppass where LOGINname= :PNAME';
query.ParamByName('ppass').AsString := pass;
query.ParamByName('Pname').AsString:= benutzer;
Query.ExecSQL;

Beim Debuggen können wir ja sehen, welches Passwort in die Datenbank geschrieben werden soll.

Der Fehler betrifft nur einzelne Zeichen, z. B. tMdú•
erhalten wir in der Entwicklungsumgebung tMdú• angezeigt.

In der Datenbank wird das letzte Zeichen "•" als dicker Strich von oben nach unten dargestellt.
Wenn wir die Daten aus der Datenbank in einen Editor kopieren, wird das Zeichen wieder als Punkt angezeigt.
Wenn wir das gespeicherte Passwort dann beim nächsten Neustart gegen die Benutzereingabe überprüfen, wird das Zeichen falsch entschlüsselt.

Wir verwenden Delphi 2010 und Windows 7.

Das gleiche Programm funktoniert unter Delphi 7 und Windows XP.
Was könnte das sein?
  Mit Zitat antworten Zitat