[firebase-br] When Any Do, não funciona?

Alexandre alexandrecrt em gmail.com
Dom Nov 22 22:03:20 -03 2015


Em 22/11/2015 10:39, Alexandre escreveu:
> Olá Carlos Cantú e amigos, estou tentando usar o When Any Do em uma
> stored procedure, porém recebo a mensagem de token unknow (indicando a
> palavra reservada When). Como se o When Any fosse desconhecido para o
> Firebird. Uso a última versão 2.5.5 do firebird.
>
> Tentei usar o When Any Do tanto direto no ISQL quanto usando ferramentas
> como o IBExpert e o problema continua.
>
> Segue um trecho de código da stored procedure para apreciação:
>
> if .......
> begin
>      PARO_STATUS_INSERCAO = 0;
> end
> else
> begin
>      when any do --AQUI O ISQL INDICA QUE O When é um "token unknow"
>      begin
>      PARO_STATUS_INSERCAO = 0;
>          exit;
>      end
>
>      insert into tbl_cliente (.............)
>      ........................
>      ........................
>      ........................
>     PARO_STATUS_INSERCAO = 1;
> end
>
> Agradeço a atenção.
>
> []'s
> Alexandre
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas:
> http://www.firebase.com.br/pesquisa_lista.html
>
Olá amigos, descobri o problema, mas sinceramente, achei meio besta a 
forma como é usado o when any do ....

É o seguinte, o when any do só funciona se estiver no final de um bloco 
de instruções.

Por exemplo, suponha que eu tenha o bloco:

if(......) then
begin
    ...................
    ...................
    ...................
end


Se eu aplicar o when any do no início do bloco (logo depois do begin), o 
firebird acusa token unknow, porém, se eu aplicar o when any do no final 
do bloco (imediatamente antes do end final), funciona perfeitamente ......

Exemplo:
if(......) then
begin
when any do ...
...................
...................
...................
end (NÃO FUNCIONA)

if(......) then
begin
...................
...................
...................
when any do ...
end (FUNCIONA)

Achei meio estranho esse comportamento. Mas enfim, é isso.
[]'s







Mais detalhes sobre a lista de discussão lista