にパラメータをバインド、私は働く、以下のプリペアドステートメントを持っている:のJavaのPreparedStatement:今HASHBYTES
SELECT email, password
FROM Professor
WHERE email = ? AND password = HASHBYTES('SHA1','" + password + "')
p.setString(1, email);
をしかし、私はこのケースでは(HASHBYTESによって暗号化される値をパラメータ化しようとすると、変数'パスワード')、結果を返さない種類の読み取り/型/変換エラーがあります。これは動作しないコードです:
SELECT email, password
FROM Professor
WHERE email = ? AND password = HASHBYTES('SHA1', ?)
p.setString(1, email);
p.setString(2, password);
エラーメッセージはまったく表示されません。結果セットはrowCountプロパティに "-3"を返します。私はSQL Serverを使用しています。
「パスワード」のようなプレースホルダを渡す:'?'もどちらも機能しません。このクエリをパラメータ化する正しい方法は何でしょうか?
どのようなエラーメッセージが表示されますか?どんなSQLサーバーに話しかけていますか? (MySQL、SQL Server、Oracle?) –
エラーメッセージはまったくありません。結果セットは、 "-3"をrowCountプロパティに返します。私はSQL Serverを使用しています。 この情報を質問に追加します。 – KarasuEXE