Доброго времени суток!
Не сталкивался ли уважаемый ALL с такой проблемой:
Есть класс на Java, который отвечает за аутентификацию пользователя.
Есть сохраненная процедура на FireBird, которая по логину и паролю проверяет, зарегистрирован ли некоторый пользователь в БД.
СП принимает два аргумента типа VARCHAR(50). Вызов СП происходит из уже упамянутого класса, через PreparedStatement.
String sQuery="SELECT * FROM "+sSelectProcedureName + "(?, ?)";
PreparedStatement ps = con.prepareStatement(sQuery);
ps.setString(1, (String)inParamValues.get(0));
ps.setString(2, (String)inParamValues.get(1));
ResultSet rs = ps.executeQuery();
Код великолепно работает когда передаются два объекта класса String, например "userName", "userPassword". Если же передать строку содержащую хеш основанный на пароле, например — {\"h ~[—ѕґвРbи€±}, (в качестве аклгоритма однонаправленного шифрования исползуется MD5), то этот же код вылетает по exception:
"GDS Exception. 335544321. No message for code 335544321 found.\nNo message for code 335544565 found."
Через консоль (FireBird) запрос к СП всегда отрабатывает замечательно.
Почему просходит exception, если передается, в конечном итоге, все тот же объект класса String?