[firebase-br] Execute block não atualiza tabela

Gladiston Santana gladiston em vidy.com.br
Qui Jul 4 17:47:47 -03 2013


Se estiver usando o ibexpert é possivel que sua transação seja 'read
commited', assim sua alteração somente será vista no próprio ibexpert até
que commit. Em algum lugar do ibexpert deve haver um autocommit para você
fazer valer o teste.
Um outro jeito de saber se o update foi ou não é incluir apos o update algo
como :
if (row_count=0) then exception ERR 'Nada foi atualizado';
ERR é o nome generico de uma exception que tenha criado.


2013/7/4 Firebird <hpensador em gmail.com>

> Boa tarde Colegas!
>
> No código abaixo necessito atualizar a tabela de funcionários, porém
> quando executo o bloco de código o mesmo não faz a atualização. O que posso
> estar fazendo errado.
>
> execute block
> as
> declare variable maticula integer;
> declare variable ar       varchar(1);
> begin
>  for select x.codigo
>      from funcionario x
>      where x.afastado = 'S'
>      order by x.codigo
>  into :maticula do
>  begin
>    ar = null;
>    select first 1 h.afa_ret
>    from historico h
>    where h.matricula = :maticula
>    order by h.data desc into :ar;
>    if ((:ar = 'R') or (:ar is null))  then
>      update funcionario set afastado = 'N' where codigo = :maticula;
>    suspend;
>  end
> end
>
> [ ]'s,
>
> Hélio Oliveira
>
>
>
>
> ______________________________**________________
> 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<http://www.firebase.com.br/fb/artigo.php?id=1107>
> Para consultar mensagens antigas: http://firebase.com.br/**pesquisa<http://firebase.com.br/pesquisa>
>



Mais detalhes sobre a lista de discussão lista