Fórum Como cancelar processo demorado? #335417
29/12/2006
0
CREATE PROCEDURE SP_GERA_ARQUIVO
AS
begin
Delete from T_ARQUIVO ;
insert into T_ARQUIVO
select * from V_ARQUIVO ;
end
update T_ARQUIVO set DESPREZA = ´S´ where DESPREZA = ´X´ ;
end
onde faço um insert em uma tabela após selecionar uma view, este processo demora mais ou menos uns 5 minutos
devido ao tamanho de registros selecionados pela view. então minha dúvida é a seguinte:
Tem como - caso queira - o usuário cancelar este processo? eu tentei de várias formas, coloquei o POST_EVENT
mas como o insert não é sequencial então não é possível interceptar a linha para que a aplicação ser notificada,
tentei tb criando Thread mas tb não funcionou, o Application.Processmessage tb teria que tem teria que ter algo
como leitura sequencial etc...
Vlw quem puder me ajudar! abraço a todos
Ronaldo Pimenta
Curtir tópico
+ 0Posts
30/12/2006
Aroldo Zanela
Como o processo ocorre no servidor (Procedimento armazenado), você pode utilizar uma tabela de parâmetros para consultar o ´status´ de uma coluna antes de efetuar a inserção.
Ex:
if tabelaX.ColunaX = 1 begin ... insert end
Gostei + 0
30/12/2006
Ronaldo Pimenta
Gostei + 0
31/12/2006
Aroldo Zanela
Eu tinha imaginado uma situação de inserção em massa. Mas no caso de ações de DML isoladas, basta utilizar Commit e Rollback, conforme o caso e definir um nível de atomicidade que satisfaça suas condições.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)