Error Exception in thread "AWT-EventQueue-0"
Publicado por Felipe (25 intervenciones) el 16/07/2007 17:03:18
hola,
En mi proyecto debo llamar un procedimiento almacenado en mysql pero en el momento q lo llamo me aparece el siguiente error
"java.sql.SQLException: ResultSet is from UPDATE. No Data.
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:910)
at com.mysql.jdbc.ResultSet.next(ResultSet.java:6676)"
Alguien puede explicarme por q este error y como puedo solucionarlo ademas de explicarme porfa como puedo obtener el valor de "x" y mostrarlo por java.
Nota: La llamada al procedimiento desde java esta bien pues ya lo he verificado y funciona, el error esta cuando trato de obtener el valor de "x". Asi lo llamo desde java.
public ResultSet modificarfactura (int valor1) {
ResultSet resultado1 = null;
ResultSet rs = null;
try {
cs.setInt(1,valor1);
//resultado1 = s.executeQuery();
//cs.registerOutParameter(2, java.sql.Types.INTEGER);
rs = cs.executeQuery();
}
catch ( SQLException ex ) {
ex.printStackTrace();
}
return rs;
}
/////////////////////////////////////////////////////
/* try {
CallableStatement cs = conn.prepareCall("{ call EJEMPLO (?,?) }");
cs.setInt(1,2);
cs.registerOutParameter(2, java.sql.Types.INTEGER);
ResultSet r = cs.executeQuery();
while (r.next())
{
out.println("<br> ** "+ cs.getInt(2));
}
r.close();
}catch (Exception e) {
out.println("<br>" + "Hubo error en el procedimiento");
e.printStackTrace();
} */
/////////////////////////////////////////////////////
///////////////////////////////////////////
/**Metodo para cerrar la conexion con la base de datos */
void cierraConexion( ){
try{
con.close();
}
catch (SQLException ex) {
ex.printStackTrace();
}
}
}
/////////////////////////////////////////////////
String parametro = jTextField1.getText();
try {
int precio = Integer.parseInt(parametro);
ResultSet r1 = cons.modificarfactura(precio);
while (r1.next()){
//System.out.println("<br>**" + r1.getInt(1));
int cod_consecutivo = r1.getInt("cod_consecutivo");
System.out.println("este es el dato" + cod_consecutivo);
}
} catch (NumberFormatException ex ) {
System.out.println( "No es un numero valido");
} catch ( SQLException ex ) {
ex.printStackTrace();
}
este es mi store procedure
drop procedure if exists get_ped;
delimiter //
create procedure get_ped (p int)
begin
declare x int;
select cod_consecutivo - 1 from consecutivos into x;
update encabezados set
nfactura_encabezados = x
where encabezados.cod_pedido_encabezados = p;
update detpedidos set
nfactura_detpedidos = x
where detpedidos.cod_pedido_detpedidos = p;
update consecutivos set cod_consecutivo = cod_consecutivo + 1;
end; //
delimiter;
En mi proyecto debo llamar un procedimiento almacenado en mysql pero en el momento q lo llamo me aparece el siguiente error
"java.sql.SQLException: ResultSet is from UPDATE. No Data.
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:910)
at com.mysql.jdbc.ResultSet.next(ResultSet.java:6676)"
Alguien puede explicarme por q este error y como puedo solucionarlo ademas de explicarme porfa como puedo obtener el valor de "x" y mostrarlo por java.
Nota: La llamada al procedimiento desde java esta bien pues ya lo he verificado y funciona, el error esta cuando trato de obtener el valor de "x". Asi lo llamo desde java.
public ResultSet modificarfactura (int valor1) {
ResultSet resultado1 = null;
ResultSet rs = null;
try {
cs.setInt(1,valor1);
//resultado1 = s.executeQuery();
//cs.registerOutParameter(2, java.sql.Types.INTEGER);
rs = cs.executeQuery();
}
catch ( SQLException ex ) {
ex.printStackTrace();
}
return rs;
}
/////////////////////////////////////////////////////
/* try {
CallableStatement cs = conn.prepareCall("{ call EJEMPLO (?,?) }");
cs.setInt(1,2);
cs.registerOutParameter(2, java.sql.Types.INTEGER);
ResultSet r = cs.executeQuery();
while (r.next())
{
out.println("<br> ** "+ cs.getInt(2));
}
r.close();
}catch (Exception e) {
out.println("<br>" + "Hubo error en el procedimiento");
e.printStackTrace();
} */
/////////////////////////////////////////////////////
///////////////////////////////////////////
/**Metodo para cerrar la conexion con la base de datos */
void cierraConexion( ){
try{
con.close();
}
catch (SQLException ex) {
ex.printStackTrace();
}
}
}
/////////////////////////////////////////////////
String parametro = jTextField1.getText();
try {
int precio = Integer.parseInt(parametro);
ResultSet r1 = cons.modificarfactura(precio);
while (r1.next()){
//System.out.println("<br>**" + r1.getInt(1));
int cod_consecutivo = r1.getInt("cod_consecutivo");
System.out.println("este es el dato" + cod_consecutivo);
}
} catch (NumberFormatException ex ) {
System.out.println( "No es un numero valido");
} catch ( SQLException ex ) {
ex.printStackTrace();
}
este es mi store procedure
drop procedure if exists get_ped;
delimiter //
create procedure get_ped (p int)
begin
declare x int;
select cod_consecutivo - 1 from consecutivos into x;
update encabezados set
nfactura_encabezados = x
where encabezados.cod_pedido_encabezados = p;
update detpedidos set
nfactura_detpedidos = x
where detpedidos.cod_pedido_detpedidos = p;
update consecutivos set cod_consecutivo = cod_consecutivo + 1;
end; //
delimiter;
Valora esta pregunta


0