Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/07/2012, 11:26
javahierro
 
Fecha de Ingreso: enero-2012
Mensajes: 23
Antigüedad: 12 años, 10 meses
Puntos: 0
llamada a un procedimiento almacenado en mysql

hola a todos!
Quiero alguien me pueda ayudar en lo siguiente:
Tengo un procedimiento almacenado(sp) al cual deseo llamar desde mi java-jsp
con la siguiente sintaxis:
try {
connJasper.setAutoCommit(false);

CallableStatement cStmt = connJasper.prepareCall("{call crear_planilla_aguinaldo(?,?,?,?)}");
cStmt.setDate(1, sqldateFecha_elab);
cStmt.setDate(2, sqldateFecha_pln);
cStmt.setString(3, idemp_elabora);
cStmt.setString(4, estado);

cStmt.execute();
final ResultSet rs = cStmt.getResultSet();

while (rs.next()) {
String cod = rs.getString("codplnagui");
}

connJasper.commit();

}catch (Exception e) {
connJasper.rollback();
e.printStackTrace();
}finally{
connJasper.close();
}

Mi problema esta en el envio de los parametros ya que estoy ocupando dos campos uno de datetime y otro de date y los otros dos de tipo string

pero en el execute() me da un error y me dice lo siguiente:
MySQLSyntaxErrorException: Incorrect number of arguments for PROCEDURE expected 4, got 0


Que espera 4 parametros el procedimiento eso es correcto y no tiene ninguno.

Ahora el sp es el siguiente:

DELIMITER $$

USE `saerp`$$

DROP PROCEDURE IF EXISTS `crear_planilla_aguinaldo`$$

CREATE DEFINER=`devsoft`@`localhost` PROCEDURE `crear_planilla_aguinaldo`(IN fecha_jsp_elaborado DATETIME,
fecha_jsp_planilla DATE,
jsp_elabora VARCHAR(11),
jsp_estado VARCHAR(2))
BEGIN
SET @fecha_elaborado=fecha_jsp_elaborado;
SET @fecha_planilla=fecha_jsp_planilla;
SET @elabora=jsp_elabora;
SET @estado=jsp_estado;
CALL inicializar_planilla_aguinaldo;
CALL inicializar_volcado;
CALL calcular_sueldo_diario;
CALL calcular_diasxanios;
CALL calcular_monto_aguineto;
END$$

DELIMITER ;



Como podria solventar el problema de enviar los parámetros en la llamada q entiendo q no se produce la llamada, nose porque