Gerade jetzt, ich habe die vorbereitete Erklärung unten, die funktioniert:Java PreparedStatement: Bindung Parameter zu HASHBYTES
SELECT email, password
FROM Professor
WHERE email = ? AND password = HASHBYTES('SHA1','" + password + "')
p.setString(1, email);
Aber wenn ich versuche, den Wert zu parametrieren von HASHBYTES (in diesem Fall verschlüsselt werden, die Variable 'Passwort'), gibt es eine Art von Lese-/Typ-/Konvertierungsfehler, der keine Ergebnisse liefert. Dies ist der Code, der nicht funktioniert:
SELECT email, password
FROM Professor
WHERE email = ? AND password = HASHBYTES('SHA1', ?)
p.setString(1, email);
p.setString(2, password);
Ich bekomme keine Fehlermeldung überhaupt; Das Resultset gibt "-3" in der Eigenschaft rowCount zurück. Ich verwende SQL Server.
Übergabe der 'password' Platzhalter wie folgt: '?' funktioniert auch nicht. Was wäre der richtige Weg, um diese Abfrage zu parametrisieren?
Welche Fehlermeldung, wenn überhaupt, erhalten Sie? Mit welchem SQL Server sprechen Sie? (MySQL, SQL Server, Oracle?) –
Keine Fehlermeldung überhaupt. Das Resultset gibt "-3" in der Eigenschaft rowCount zurück, wenn das hilft. Ich benutze SQL Server. Ich werde diese Informationen zu der Frage hinzufügen. – KarasuEXE