Hola , tengo un error en mi codigo para llamar a mi funcion de java. el codigo de la funcion es esta
DELIMITER $$
DROP FUNCTION IF EXISTS `corpolab`.`f_val_acceso`$$
CREATE DEFINER=`root`@`%` FUNCTION `f_val_acceso`(codemp int, usua varchar(11), pass varchar(11)) RETURNS int(11)
READS SQL DATA
BEGIN
declare fechaini date;
declare fecha1 date;
declare control1 integer;
declare mensaje char;
declare existe boolean;
set fechaini = date('2007-09-01');
set fecha1 = curdate();
if fecha1 = fechaini then
Set control1 = 0 ;
set mensaje = 'Cerrado! En Inventario' ;
ELSE
SELECT Count(1)>0 into existe FROM acceso_wap WHERE cod_empresa = codemp and cod_usuario= usua and clave= pass;
if existe then
SELECT control into control1 FROM acceso_wap WHERE cod_empresa = codemp and cod_usuario= usua and clave= pass;
set mensaje = 'Bienvenido!' ;
else
Set control1 = 0 ;
set mensaje = 'Error! Vuelva Intentar' ;
End if ;
END IF;
RETURN control1;
END$$
DELIMITER ;
y el codigo que toy utilizando para llamar a esta funcion es:
CallableStatement st = conector.prepareCall("{ ? = call f_val_acceso (?,?,?) } ");
st.registerOutParameter(1,java.sql.Types.INTEGER);
st.setInt(2,nempresa);
st.setString(3,usuario);
st.setString(4,clave);
st.executeQuery();
codusuario = st.getInt(1);
st.close();
mi variable la declare asi static int codusuario=-1; y cuando ejecuto se ve que el codusuario se mantiene y si es correcto deberia salirme cualquier numero mayor que 0.
es como si no ejecutara el query.
porfavor si alguien me podrias ayudar
le agradeceria mucho :)
okas