Java - MySql Stored Procedure "No data - zero rows fetched, selected, or processed" -



Java - MySql Stored Procedure "No data - zero rows fetched, selected, or processed" -

in web application, while trying retrieve info saved info , select box through resultset , got below error on calling next procedure. please give valuable solutions thanks

error found :

error: java.sql.sqlexception: no info - 0 rows fetched, selected, or processed @ com.mysql.jdbc.sqlerror.createsqlexception(sqlerror.java:1078) @ com.mysql.jdbc.mysqlio.checkerrorpacket(mysqlio.java:4190) @ com.mysql.jdbc.mysqlio.checkerrorpacket(mysqlio.java:4122) @ com.mysql.jdbc.mysqlio.sendcommand(mysqlio.java:2570) @ com.mysql.jdbc.mysqlio.sqlquerydirect(mysqlio.java:2731) @ com.mysql.jdbc.connectionimpl.execsql(connectionimpl.java:2818) @ com.mysql.jdbc.preparedstatement.executeinternal(preparedstatement.java:2157) @ com.mysql.jdbc.preparedstatement.execute(preparedstatement.java:1379) @ com.mysql.jdbc.callablestatement.execute(callablestatement.java:920) @ com.schoolmanager.util.storeprochandler.accessstoredprocedure(storeprochandler.java:63) @ org.apache.jsp.home_jsp._jspservice(home_jsp.java:187) @ org.apache.jasper.runtime.httpjspbase.service(httpjspbase.java:70) @ javax.servlet.http.httpservlet.service(httpservlet.java:727) @ org.apache.jasper.servlet.jspservletwrapper.service(jspservletwrapper.java:432) @ org.apache.jasper.servlet.jspservlet.servicejspfile(jspservlet.java:390) @ org.apache.jasper.servlet.jspservlet.service(jspservlet.java:334) @ javax.servlet.http.httpservlet.service(httpservlet.java:727)

java:

method storeprochandlerclass :

public resultset accessstoredprocedure(list<object> parameters, string procedurecalled) throws communicationsexception { resultset rset = null; int noofparameters = parameters.size(); seek { system.out.println("parameters " + parameters); system.out.println("procedure elements " + "{call " + procedurecalled + "(" + getgenlist(parameters.size()) + ")}"); callstat = connect.preparecall( "{call " + procedurecalled + "(" + getgenlist(parameters.size()) + ")}"); (int = 1; <= noofparameters; i++) { object obj = parameters.get(i-1); if (obj.tostring().contains("types")) { callstat.registeroutparameter(i, types.varchar); } else { callstat.setobject(i, obj); } } callstat.execute(); rset = callstat.getresultset(); if(rset != null){ rset.next(); } } grab (sqlexception e) { // todo auto-generated grab block e.printstacktrace(); } grab (exception e) { e.printstacktrace(); } { seek { logger.info("procedure executed asp ="+procedurecalled); } grab (exception e) { // todo auto-generated grab block e.printstacktrace(); } } homecoming rset; }

error part :

list<object> parameters = null; resultset rset = null; connection con = (connection) request.getattribute("accessconnect"); int noofcols = 4; string qmsg = null; system.out.println("session.getattribute " + session.getattribute("usertype")); parameters = new arraylist<object>( arrays.aslist(session.getattribute("usermail"), session.getattribute("usertype"), types.varchar, types.varchar, types.varchar, types.varchar, types.varchar )); storeprochandler sph = new storeprochandler(con); rset = sph.accessstoredprocedure(parameters, "get_user_profile"); if (rset != null) { rset.beforefirst(); rset.last(); system.out.println("rset row " + rset.getrow()); }

mysql stored procedure :

create definer=`user_name`@`%` procedure `get_user_profile`( in p_user_id varchar(150), in p_role varchar(150), out p_user_data varchar(200), out p_city varchar(150), out p_state varchar(150), out p_country varchar(150), out q_msg varchar(150)) begin declare available int default 0; declare cur_city cursor select city countries; declare cur_state cursor select state countries; declare cur_country cursor select country countries; declare cur_u_data cursor select * staff_profile email = p_user_id , role = p_role; select count(email) available staff_profile email = p_user_id , role = p_role; phone call sql_logger('user_profile', p_city); open cur_city; open cur_state; open cur_country; get_list: loop fetch cur_city p_city; fetch cur_state p_state; fetch cur_country p_country; end loop get_list; if(available=1) open cur_u_data; get_data: loop fetch cur_u_data p_user_data; end loop get_data; else set q_msg = 'user_logged_first'; end if; end

yes, found solution issue, got confused result set out parameter , found next way of code java.sql.resultset

java code portion: (added after calling procedure callablestatement)

callstat.execute(); int cols = rsmd.getcolumncount(); resultsetmetadata metadata = null; int resultrow = 1; int col = 1; boolean result = callstat.execute(); while(result){ resultset rs = callstat.getresultset(); col=1; while(rs.next()){ metadata = rs.getmetadata(); string colname = metadata.getcolumnname(1); // column retrieved string value = (string) rs.getobject(colname);; system.out.println(value); col++; } resultrow++; rs.close(); result = callstat.getmoreresults(callablestatement.close_current_result); }

mysql stored procedure :

create definer=`user_name`@`%` procedure `get_user_profile`( in p_user_id varchar(150), in p_role varchar(150), out q_msg varchar(150)) begin select distinct state countries ; select distinct city countries ; select * countries order country asc; set q_msg = 'executed';

java mysql jsp jdbc

Comments

Popular posts from this blog

assembly - What is the addressing mode for ld, add, and rjmp instructions? -

vowpalwabbit - Interpreting Vowpal Wabbit results: Why are some lines appended by "h"? -

Is there a way to convert an HTML page styled with Bootstrap CSS into email-compatible html? -