MySQL Forums
Forum List  »  Spanish

Prodedimientos almacenados
Posted by: Jesus Cantero Ferron
Date: April 03, 2008 04:46AM

Muy buenas, tengo un pequeño problema con los procedimientos almacenados usando sql dinamico, pego el procedimiento abajo:

Create Procedure sp_select_proveedores(IN vIdUsuario INTEGER(11),
IN vIdCompania INTEGER(11),
IN vActivos BIT)
BEGIN

DECLARE tipoUsuario VARCHAR(10);
DECLARE sentSQL VARCHAR(4000);

/*Obtenemos el tipo de usuario*/
Select tipo_usuario INTO tipoUsuario From usuarios Where id_usuario = vIdUsuario Limit 1;


/*Creamos el sql dinammico*/
SET @sentSQL = "Select * From proveedores Where id_compania = ? ";

IF strcmp(tipoUsuario, "Empleado") = 0 THEN
SET @sentSQL = CONCAT(@sentSQL, "And id_usuario_creador = ? ");
END IF;

IF vActivos = 1 THEN
SET @sentSQL = CONCAT(@sentSQL, "And activo_proveedor = 1 ");
END IF;

/*Preparamos la sentencia*/
Prepare stmt FROM @sentSQL;


/*Dependiendo del tipo de usuario reslizamosd una ejecucion de la sentencia*/
IF strcmp(tipoUsuario, "Empleado") = 0 THEN
EXECUTE stmt USING @vIdCompania, @vIdUsuario;
ELSE
EXECUTE stmt USING @vIdCompania;
END IF;

END

el problema es que me hace la sentencia preparada pero no devuelve registros, y debería de devolverlos, si alguien me puede echar una mano se lo agradederia

Options: ReplyQuote


Subject
Views
Written By
Posted
Prodedimientos almacenados
3458
April 03, 2008 04:46AM
1622
April 03, 2008 08:56PM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.