ele retorna a seguinte exception = “java.sql.SQLException: Invalid parameter index 1”
Como se estivesse chamando o método incorretamente, mas aparentemente está correto…
[code]
String user = request.getParameter("Login");
System.out.println(user); //Ele imprime o nome do usuário
cstmt.setString(1, user); //gera a exception aqui [/code]
Consegui resolver o problema chamando a Stored Procedure de outra forma…
[code] if (conn != null) {
String user = request.getParameter("sLogin_Login");
String senha = request.getParameter("sPasswd_Login");
System.out.println(user + " - " + senha);
//chamar Stored Procedure de login no Banco de Dados
String sql = "{? = call PW(?,?)}";
CallableStatement cstmt = conn.prepareCall(sql);
System.out.println("pcLogin - CallableStatement");
cstmt.registerOutParameter(1,Types.OTHER);
System.out.println("pcLogin - Typos");
cstmt.setString(2, user);
cstmt.setString(3, senha);
cstmt.execute();
String aut = (String) cstmt.getObject(1);
…
[/code]
Mas lança a exception "java.lang.ClassCastException "
Como eu descubro qual classe que retorna com o “cstmt.getObject(1)” ???
A StoredProcedure deve retornar 2 valores, sendo o primeiro uma String e o segundo um int
Aparentemente, há um descasamento entre o código JDBC e a sua stored procedure. Poste a sua stored procedure e o tipo do seu RDBMS para melhor avaliação.