[firebase-br] [Stored Procedure] Erro de sintaxe

Demitre demitre em estadao.com.br
Seg Jul 4 17:48:26 -03 2005


Por causa do ponto-e-vírgula depois do END
Jader Ricardo escreveu:

>Boa tarde a todos !
>
>Tentei escrever o código abaixo para solucionar meu post anterior aqui na
>lista, mas está dando erro, deve ser um erro de sintaxe, alguma ajuda ?
>
>***
>CREATE PROCEDURE SP_CONSULTA_CLIENTES (
>    PECODIGO INTEGER,
>    PENOME VARCHAR(50),
>    PECIDADE VARCHAR(30))
>RETURNS (
>    PSCODIGO INTEGER,
>    PSNOME VARCHAR(50),
>    PSCIDADE VARCHAR(30))
>AS
>DECLARE VARIABLE STRSQL VARCHAR(100);
>DECLARE VARIABLE CONT INTEGER;
>BEGIN
>  /* Iniciando variáveis */
>  STRSQL = 'SELECT * FROM CLIENTES WHERE ';
>  CONT = 0;
>
>  /* Testando o primeiro atributo */
>  IF (:PECODIGO IS NOT NULL) THEN
>    BEGIN
>      STRSQL = :STRSQL ||'CODIGO = ' || :PECODIGO;
>      CONT = 1;
>    END; /* => => => Aqui sempre dá o erro, porquê ? */
>
>  /* Testando o segundo atributo
>     O número um serve para indicar ser vou ter que usar um AND */
>  IF (:CONT = 1) AND (:PENOME IS NOT NULL) THEN
>    BEGIN
>      STRSQL = :STRSQL || 'AND NOME = ' || :PENOME;
>      CONT = 1;
>    END
>  ELSE
>    BEGIN
>      IF (:PENOME IS NOT NULL) THEN
>        BEGIN
>          STRSQL = :STRSQL || 'NOME = ' || :PENOME;
>          CONT = 1;
>        END
>    END;
>
>  /* Testando o terceiro atributo
>   O número um serve para indicar ser vou ter que usar um AND */
>  IF (:CONT = 1) AND (:PECIDADE IS NOT NULL) THEN
>    BEGIN
>      STRSQL = :STRSQL || 'AND CIDADE = ' || :PECIDADE;
>      CONT = 1;
>    END
>  ELSE
>    BEGIN
>      IF (:PECIDADE IS NOT NULL) THEN
>        BEGIN
>          STRSQL = :STRSQL || 'CIDADE = ' || :PECIDADE;
>        END
>    END;
>
>  /* Executar o select */
>  FOR EXECUTE STATEMENT :STRSQL
>  INTO :PSCODIGO,:PSNOME,:PSCIDADE
>  DO
>  BEGIN
>    SUSPEND;
>  END
>END
> 
>***
>Jader Ricardo
>
>
>______________________________________________
>FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
>Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
>  
>






Mais detalhes sobre a lista de discussão lista