Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

andfera

Stored Procedure IF encadeado

Recommended Posts

Como fazer IF encadeado em Store Procedures??

 

Acho que to errando na sintaxe!

 

Meu exemplo:

 

DELIMITER $$

DROP PROCEDURE IF EXISTS `xprojetos`.`consulta` $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `consulta`(c_log VARCHAR(10), c_senha VARCHAR(8))
BEGIN
SELECT cad_log, cad_senha, cad_perm into @log, @senha, @perm
from cad_login
where cad_log = c_log and cad_senha = c_senha
limit 1;
IF ((@log = c_log) && (@senha = c_senha) && (@perm = 'CLIENTE')) THEN
SELECT * FROM tb_tributos;
ELSE
IF ((@log = c_log) && (@senha = c_senha) && (@perm = 'RH')) THEN
SELECT * FROM cad_funcionarios;
ELSE
SELECT '*USUARIO NÃO TEM PERMISSÃO*' AS Msg;
END IF;
END $$
DELIMITER;

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual é o erro que está dando????

 

IF ((@log = c_log) && (@senha = c_senha)
para quê fazer esse IF???

 

a final na tua consulta que você está armazenando a permissão você já faz no where igual a log e senha. Vai ser sempre igual. Basta verificar a permissão.

 

 

organize os dados

 

IF ((@log = c_log) && (@senha = c_senha) && (@perm = 'CLIENTE')) THEN

SELECT * FROM tb_tributos;

ELSE

IF ((@log = c_log) && (@senha = c_senha) && (@perm = 'RH')) THEN

SELECT * FROM cad_funcionarios;

ELSE

SELECT '*USUARIO NÃO TEM PERMISSÃO*' AS Msg;

END IF;

 

não parece que você esqueceu um END IF???

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual é o erro que está dando????

 

IF ((@log = c_log) && (@senha = c_senha)
para quê fazer esse IF???

 

a final na tua consulta que você está armazenando a permissão você já faz no where igual a log e senha. Vai ser sempre igual. Basta verificar a permissão.

 

 

organize os dados

 

IF ((@log = c_log) && (@senha = c_senha) && (@perm = 'CLIENTE')) THEN

SELECT * FROM tb_tributos;

ELSE

IF ((@log = c_log) && (@senha = c_senha) && (@perm = 'RH')) THEN

SELECT * FROM cad_funcionarios;

ELSE

SELECT '*USUARIO NÃO TEM PERMISSÃO*' AS Msg;

END IF;

 

não parece que você esqueceu um END IF???

Cara acabei fazendo por case é BEMMMmelhor....ficamais rapido a verificação!!!

 

Abraços

 

Depois eu posto o codigo pro pessoal ver de exemplo!

 

VLW

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.