Ir para conteúdo

POWERED BY:

Arquivado

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

GRiLLo

Procedure

Recommended Posts

pessoal, é o seguinte, estou fazendo um if que vem de uma funcao para comparar valores, ai eu tenho 2 problemas.

 

1. nao estou conseguindo retornar boolean da funcao, tive que colocar como varchar(1) para passar no return "1" ou return "0". (totalmente bizarro o que fiz, eu sei!)

2. nao consigo verificar se o retorno da funcao é igual a 1 ou 0 (if)

 

segue o código simplificado

PROCEDURE

CREATE PROCEDURE `grillowe_financeiro`.`addUsuario` (IN _char_usuario_nome VARCHAR(150), _char_usuario_email VARCHAR(150), _char_usuario_senha VARCHAR(100))
BEGIN

   IF ( _char_usuario_nome IS NOT NULL && _char_usuario_email IS NOT NULL && _char_usuario_senha IS NOT NULL ) THEN

       IF ( select (grillowe_financeiro.getUsuarioByEmailSenha(_char_usuario_email, _char_usuario_senha)) = '0' ) THEN

           insert into grillowe_financeiro.tblUsuario (char_usuario_nome, char_usuario_email, char_usuario_senha) values (_char_usuario_nome, _char_usuario_email, _char_usuario_senha);

       END IF;


   END IF;

END

 

que chama a funcao getUsuarioByEmailSenha que se for = '0' ele insere no banco o usuario

CREATE FUNCTION `grillowe_financeiro`.`getUsuarioByEmailSenha` (_char_usuario_email VARCHAR(150), _char_usuario_senha VARCHAR(100)) RETURNS varchar(1)
BEGIN
   IF ( _char_usuario_email is not null && _char_usuario_senha is not null) THEN
       if( 
           SELECT count(*)
           from grillowe_financeiro.tblUsuario as u
           where u.char_usuario_email = _char_usuario_email and u.char_usuario_senha = _char_usuario_senha 
       ) THEN

           return '1';

       END IF;

   END IF;

   return '0';

END

 

brigadao pela ajuda!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

pessoal, é o seguinte, estou fazendo um if que vem de uma funcao para comparar valores, ai eu tenho 2 problemas.

 

1. nao estou conseguindo retornar boolean da funcao, tive que colocar como varchar(1) para passar no return "1" ou return "0". (totalmente bizarro o que fiz, eu sei!)

2. nao consigo verificar se o retorno da funcao é igual a 1 ou 0 (if)

 

segue o código simplificado

PROCEDURE

CREATE PROCEDURE `grillowe_financeiro`.`addUsuario` (IN _char_usuario_nome VARCHAR(150), _char_usuario_email VARCHAR(150), _char_usuario_senha VARCHAR(100))
BEGIN

   IF ( _char_usuario_nome IS NOT NULL && _char_usuario_email IS NOT NULL && _char_usuario_senha IS NOT NULL ) THEN

       IF ( select (grillowe_financeiro.getUsuarioByEmailSenha(_char_usuario_email, _char_usuario_senha)) = '0' ) THEN

           insert into grillowe_financeiro.tblUsuario (char_usuario_nome, char_usuario_email, char_usuario_senha) values (_char_usuario_nome, _char_usuario_email, _char_usuario_senha);

       END IF;


   END IF;

END

 

que chama a funcao getUsuarioByEmailSenha que se for = '0' ele insere no banco o usuario

CREATE FUNCTION `grillowe_financeiro`.`getUsuarioByEmailSenha` (_char_usuario_email VARCHAR(150), _char_usuario_senha VARCHAR(100)) RETURNS varchar(1)
BEGIN
   IF ( _char_usuario_email is not null && _char_usuario_senha is not null) THEN
       if( 
           SELECT count(*)
           from grillowe_financeiro.tblUsuario as u
           where u.char_usuario_email = _char_usuario_email and u.char_usuario_senha = _char_usuario_senha 
       ) THEN

           return '1';

       END IF;

   END IF;

   return '0';

END

 

brigadao pela ajuda!!

 

// Verifica se nome/e-mail/senha não são nulos

IF ( _char_usuario_nome IS NOT NULL && _char_usuario_email IS NOT NULL && _char_usuario_senha IS NOT NULL ) THEN

// Não olhei a function, mas pelo nome busca se já existe usuário com aquele email e senha.

IF ( select (grillowe_financeiro.getUsuarioByEmailSenha(_char_usuario_email, _char_usuario_senha)) = '0' ) THEN

// Insere

insert into grillowe_financeiro.tblUsuario (char_usuario_nome, char_usuario_email, char_usuario_senha) values (_char_usuario_nome, _char_usuario_email, _char_usuario_senha);

 

END IF;

 

 

END IF;

 

END

 

É algum trabalho de faculdade/Curso?

 

Se não for, não vi a necessidade desta procedure/function.

 

Pode ser que não reparei em algo, MAS:

 

nome NOT NULL

email NOT NULL

senha NOT NULL

Resolve o primeiro IF.

 

ADD UNIQUE INDEX `emailSenha_UNIQUE` (`email` ASC, `senha` ASC) ; -- Resolve o segundo IF.

 

Obs: Não é bom gravar a senha sem criptografia, e por que comparar email e senha igual?

 

Sabendo qual a necessidade ficaria fácil te dar uma ideia.

 

Abraço.

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.