UPDATE dentro da PROCEDURE (Saber se afetou algum registro)

Firebird

08/12/2005

Olá galera,

Estou fazendo UPDATEs dentro de uma procedure e um desses UPDATEs
preciso saber se foi afetado algum registro e caso não afetou um registro eu preciso fazer um INSERT. Sei que tem um comandinho para isso mas não estou me lembrando.

O que eu podia estar fazendo é verificar se existe fazendo um SELECT assim: select count(*) from TABELA where CAMPO=1 into :V_CONTA
ai é só fazer um IF (:V_CONTA) = 0 THEN ....

Mas sei que existe um comando que simplifica isso, saiu no livro do Carlos H Cantú mas não me lembro, se algum poder me ajudar fico agredecido.

Obrigado...


Pennetta

Pennetta

Curtidas 0

Respostas

Romulocpd

Romulocpd

08/12/2005

Olá,

Acho que é rows_affected;

Após o update vc joga isso numa variavel.

LINHAS = rows_affected;

IF LINHAS > 0

blá blá blá.

Este é o caminho se nao for exatamente este o comando.


GOSTEI 0
Pennetta

Pennetta

08/12/2005

Olá, o comando é row_count
Valeu amigo, através do que vc tinha falado deu para achar essa opção.
Fiz uma demonstração para quem precisar um dia, um teste básico.
create procedure SP_TESTE
returns (DESCR VARCHAR(40))
as
begin
  UPDATE TB_PF
  SET
    DTNASC=DTNASC
  WHERE
    ID_PESSOA in (2, 4);

  if (row_count > 0) then
    DESCR = ´Atualizado.´;
  else
    DESCR = ´Falha na atualização.´;

  suspend;

end



GOSTEI 0
POSTAR