Fórum Campo Boolean em Procedure no Firebird 1.5 #59354
17/01/2008
0
Amigos, como uso um campo boolean em uma procedure no Firebird 1.5?
Estou estudando a edição nº 76 da ClubDephi que ensina o Controle de Acesso de usuário, mas não estou conseguindo cria essa procedure. Estava lendo que não tem campo boolean no Firebird 1.5 criei um domínio, mas mesmo assim esta dando erro.
CREATE PROCEDURE PROC_VERIFICA_ACESSO_MENU (
CODUSUARIO INTEGER, CODMENU INTEGER)
RETURNS (CONSULTAR CHAR(1))
AS
DECLARE VARIABLE GU_CONSULTAR LOGICO;
BEGIN
CONSULTAR = ´F´;
FOR SELECT PU_CONSULTAR FROM PERMISSOES_USUARIOS
WHERE USU_CODIGO = :CODUSUARIO AND
MEN_CODIGO = :CODMENU
UNION
SELECT PG_CONSULTAR FROM PERMISSOES_GRUPOS
WHERE GRU_CODIGO IN (
SELECT GRU_CODIGO FROM GRUPOS_USUARIOS
WHERE USU_CODIGO = :CODUSUARIO) AND
MEN_CODIGO = :CODMENU
INTO :GU_CONSULTAR
DO
BEGIN
IF (:GU_CONSULTAR = TRUE) THEN
BEGIN
CONSUTAR = ´T´;
EXIT;
END
END
END
ERRO:
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 5, char 31.
LOGICO.
Estou estudando a edição nº 76 da ClubDephi que ensina o Controle de Acesso de usuário, mas não estou conseguindo cria essa procedure. Estava lendo que não tem campo boolean no Firebird 1.5 criei um domínio, mas mesmo assim esta dando erro.
CREATE PROCEDURE PROC_VERIFICA_ACESSO_MENU (
CODUSUARIO INTEGER, CODMENU INTEGER)
RETURNS (CONSULTAR CHAR(1))
AS
DECLARE VARIABLE GU_CONSULTAR LOGICO;
BEGIN
CONSULTAR = ´F´;
FOR SELECT PU_CONSULTAR FROM PERMISSOES_USUARIOS
WHERE USU_CODIGO = :CODUSUARIO AND
MEN_CODIGO = :CODMENU
UNION
SELECT PG_CONSULTAR FROM PERMISSOES_GRUPOS
WHERE GRU_CODIGO IN (
SELECT GRU_CODIGO FROM GRUPOS_USUARIOS
WHERE USU_CODIGO = :CODUSUARIO) AND
MEN_CODIGO = :CODMENU
INTO :GU_CONSULTAR
DO
BEGIN
IF (:GU_CONSULTAR = TRUE) THEN
BEGIN
CONSUTAR = ´T´;
EXIT;
END
END
END
ERRO:
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 5, char 31.
LOGICO.
Jrcosmoluis
Curtir tópico
+ 0
Responder
Posts
17/01/2008
Gandalf.nho
Pelo que me lembro, não é possível usar domínios para declarar variáveis e parâmetros em SPs, somente em tabelas. Outra sugestão é usar SMALLINT como opção para booleanos em vez de CHAR(1).
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)