Ver Mensaje Individual
  #9 (permalink)  
Antiguo 07/05/2010, 11:32
Huaskar
 
Fecha de Ingreso: abril-2010
Mensajes: 36
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: Prepare - Execute en SP

Disculpame nuevamente... ese stored procedure funciono bien pero el problema lo tengo con los ?
Estaba trabajando el mismo ejemplo pero con 4 parametros, como podria hacer para llamar especificamente el 3er o 4to parametro?

Este es mi ejemplo:

Código MySQL:
Ver original
  1. CREATE DEFINER=`root`@`%` PROCEDURE `inv_sp_tipo_eva_almacen_selectrela2`(
  2. in param_cod_empresa CHAR(5),
  3. in param_cod_tipo_eva CHAR(1),
  4. in param_cod_eva_alm CHAR(3),
  5. in param_des_eva_alm VARCHAR(50))
  6.         set @consulta='select cod_tipo_eva, cod_eva_alm, des_eva_alm from tipo_eva_almacen where cod_empresa=?';
  7.         set @param_cod_empresa=param_cod_empresa;
  8.         set @param_cod_tipo_eva=param_cod_tipo_eva;
  9.         set @param_cod_eva_alm=param_cod_eva_alm;
  10.         set @param_des_eva_alm=param_des_eva_alm;
  11.  
  12.         if(param_cod_tipo_eva!='') then
  13.         set @consulta=concat(@consulta,' and cod_tipo_eva=?');
  14.         end if;
  15.  
  16.         if(param_cod_eva_alm!='') then
  17.         set @consulta=concat(@consulta,' and cod_eva_alm=?');
  18.         end if;
  19.  
  20.         if(param_des_eva_alm!='') then
  21.         set @consulta=concat(@consulta,' and des_eva_alm like concat("%",?,"%")');
  22.         end if;
  23.  
  24.         prepare consulta from @consulta;
  25.         execute consulta using @param_cod_empresa, @param_cod_tipo_eva, @param_cod_eva_alm, @param_des_eva_alm;
  26.         deallocate prepare consulta;

Funciona muy bien cuando se ingresan todos los parametros en el SP, pero si se ingresan por ejemplo 2 de los 4 parametros no tendria como llamar los parametros especificos utilizando ?
No seria lo ideal llenarme de tantos IF.

Espero me puedas indicar una forma de hacer eso, si es que es posible en MySQL.

Gracias!