UPDATE dentro da PROCEDURE (Saber se afetou algum registro)
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...
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
Curtidas 0
Respostas
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.
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
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.
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