[firebase-br] StoredProcedure (Select X Update)

Marcelo Moreira marcelomoreira.souza em gmail.com
Ter Abr 5 15:13:39 -03 2011


Pessoal,

É correto fazer uma SP que desempenhe duas funções ao mesmo tempo? A
primeira seria realizar um select em determinada tabela e a segunda,
realizar um update nesta mesma tabela onde foi realizado o select.
Ficou meio confuso mas vou tentar exemplificar:

Vou fazer um for select na tabela cliente onde vou retornar alguns dados dos
clientes, dentre estes campos que vou retornar vai ter um do tipo Time.
Dentro do laco for select vou verificar a quantidade minutos entre o campo
citado e a hora corrente, se a diferenca for X preciso dar um update em um
campo da tabela cliente

for
  select id_cliente, hora_atualiza, nome, cpf, status from cliente where
status <> 1 into :id_cliente, :hora_atualiza, :nome, :cpf, :return_status
do begin
  INTERVAL_LAST_UPDATE = datediff(minute from :hora_atualiza to
current_time);
      if ((INTERVAL_LAST_UPDATE >= 2) then begin
        RETURN_STATUS = 3;
        update cliente set status = :return_status where id_cliente =
:id_cliente;
      end
  suspend;
end

Ou neste caso seria melhor fazer na mesma SP uma coisa de cada vez? Primeiro
atualizo e depois dou o select?

Estou usando o Firebird 2.1.3

Grato pela atenção

-- 
Marcelo Moreira
(31) 8420-2723
E-mail / MSN: marcelomoreira.souza em hotmail.com
E-mail: marcelomoreira.souza em gmail.com
Skype: marcelomoreira.souza



Mais detalhes sobre a lista de discussão lista