Foros del Web » Programación para mayores de 30 ;) » Java »

llamada a un procedimiento almacenado en mysql

Estas en el tema de llamada a un procedimiento almacenado en mysql en el foro de Java en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 26/07/2012, 11:26
 
Fecha de Ingreso: enero-2012
Mensajes: 23
Antigüedad: 12 años, 3 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
  #2 (permalink)  
Antiguo 26/07/2012, 16:36
 
Fecha de Ingreso: junio-2012
Mensajes: 11
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: llamada a un procedimiento almacenado en mysql

Hola!

Le tienes que poner a todos los parametros si será de Entrada/Salida

crear_planilla_aguinaldo`(IN fecha_jsp_elaborado DATETIME,
IN fecha_jsp_planilla DATE,
IN jsp_elabora VARCHAR(11),
IN jsp_estado VARCHAR(2))

Probaste tu SP antes y si te funciono, sin la llamada en java?
  #3 (permalink)  
Antiguo 24/08/2012, 01:03
 
Fecha de Ingreso: enero-2012
Mensajes: 23
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: llamada a un procedimiento almacenado en mysql

Cita:
Iniciado por ielea Ver Mensaje
Hola!

Le tienes que poner a todos los parametros si será de Entrada/Salida

crear_planilla_aguinaldo`(IN fecha_jsp_elaborado DATETIME,
IN fecha_jsp_planilla DATE,
IN jsp_elabora VARCHAR(11),
IN jsp_estado VARCHAR(2))

Probaste tu SP antes y si te funciono, sin la llamada en java?
Holaa si lo probe y ya lo resolvi agradezco mucho tu ayuda

Etiquetas: call, jsp, mysql, procedure, store
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:11.