Como retornar un valor de un stored procedure
Publicado por felipe (7 intervenciones) el 18/07/2007 23:59:12
hola,
Estoy desarrollando un proyecto en java netbeans 5.5 y mysql 5.2.
En la base de datos tengo un stored procedure y necesito retornar un valor de él, el valor de "x" en este caso.
Este es mi stored procedure
delimiter //
create procedure get_ped (p int, out x int)
begin
select cod_consecutivo 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;
desde java lo llamo con 2 clases asi:
public ResultSet modificarfactura (int valor1) {
ResultSet resultado1 = null;
ResultSet rs = null;
try {
s.setInt(1,2);
//resultado1 = s.executeQuery();
cs.registerOutParameter(2, java.sql.Types.INTEGER);
rs = cs.executeQuery();
//System.out.println("<br> ** "+ cs.getInt(2));
}
catch ( SQLException ex ) {
ex.printStackTrace();
}
return rs;
}
y esta otra,
try {
setVisible(true);
int precio = Integer.parseInt(parametro);
System.out.println( "\n Resultado de la busqueda:");
ResultSet r1 = cons.modificarfactura(precio);
System.out.println("<br>**" + r1.getInt(1));
System.out.println("Stored Procedure executed succesfull");
} catch (NumberFormatException ex ) {
System.out.println( "No es un numero valido");
}
catch ( SQLException ex ) {
ex.printStackTrace();
}
Cuando verifico desde el prompt de mysql los datos de las tablas encabezados y detpedidos el stored procedure se ha ejecutado perfectamente "REALIZA LOS UPDATES", pero me sale un error y no retorna el valor de "x".
Si alguien sabe como puedo retornar el valor de un stored procedure muchas gracias por su colaboración y si este codigo les puede servir de algo es con mucho gusto.
Estoy desarrollando un proyecto en java netbeans 5.5 y mysql 5.2.
En la base de datos tengo un stored procedure y necesito retornar un valor de él, el valor de "x" en este caso.
Este es mi stored procedure
delimiter //
create procedure get_ped (p int, out x int)
begin
select cod_consecutivo 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;
desde java lo llamo con 2 clases asi:
public ResultSet modificarfactura (int valor1) {
ResultSet resultado1 = null;
ResultSet rs = null;
try {
s.setInt(1,2);
//resultado1 = s.executeQuery();
cs.registerOutParameter(2, java.sql.Types.INTEGER);
rs = cs.executeQuery();
//System.out.println("<br> ** "+ cs.getInt(2));
}
catch ( SQLException ex ) {
ex.printStackTrace();
}
return rs;
}
y esta otra,
try {
setVisible(true);
int precio = Integer.parseInt(parametro);
System.out.println( "\n Resultado de la busqueda:");
ResultSet r1 = cons.modificarfactura(precio);
System.out.println("<br>**" + r1.getInt(1));
System.out.println("Stored Procedure executed succesfull");
} catch (NumberFormatException ex ) {
System.out.println( "No es un numero valido");
}
catch ( SQLException ex ) {
ex.printStackTrace();
}
Cuando verifico desde el prompt de mysql los datos de las tablas encabezados y detpedidos el stored procedure se ha ejecutado perfectamente "REALIZA LOS UPDATES", pero me sale un error y no retorna el valor de "x".
Si alguien sabe como puedo retornar el valor de un stored procedure muchas gracias por su colaboración y si este codigo les puede servir de algo es con mucho gusto.
Valora esta pregunta


0