Cancelar a execução de uma stored procedure
Senhores,
Há um tópico idêntico a este na sala de Firebird que não foi respondido. Decidi criar um na sala Delphi. O contexto é:
. Planeja-se disparar uma stored procedure demorada (dezenas de milhares de registros);
. Deseja-se cancelar a execução da stored procedure, se estiver demorando muito;
. Entende-se que o cancelamento pode depender de recursos do SGBD. Informações a respeito são bem vindas;
. Acompanhar a execução da stored procedure: pode ser feito manualmente através de uma tabela específica no banco, com os devidos cuidados de visibilidade dos dados corretamente atualizados; caso alguém conheça recursos mais elegantes, informe;
. Isto eu sei: se a execução da stored procedure for disparada através de uma thread, esta deverá ter objeto de conexão específico.
Grato pela atenção.
Há um tópico idêntico a este na sala de Firebird que não foi respondido. Decidi criar um na sala Delphi. O contexto é:
. Planeja-se disparar uma stored procedure demorada (dezenas de milhares de registros);
. Deseja-se cancelar a execução da stored procedure, se estiver demorando muito;
. Entende-se que o cancelamento pode depender de recursos do SGBD. Informações a respeito são bem vindas;
. Acompanhar a execução da stored procedure: pode ser feito manualmente através de uma tabela específica no banco, com os devidos cuidados de visibilidade dos dados corretamente atualizados; caso alguém conheça recursos mais elegantes, informe;
. Isto eu sei: se a execução da stored procedure for disparada através de uma thread, esta deverá ter objeto de conexão específico.
Grato pela atenção.
José Silva
Curtidas 0
Respostas
Bruno Leandro
28/05/2012
uma ideia seria usar transação ai quando for acionado o cancelar seria executado o rollback, caso contrario o commit
GOSTEI 0
William
28/05/2012
Colega vc pode usar em conjunto com a idéia do Bruno um contador interno no delphi, caso o sistema fique ocioso tantos minutos dispara o cancelamento da store procedure. Mas o contador ou a store tem que estar rodando com thread, senão trava tudo.
GOSTEI 0
José Silva
28/05/2012
Perfeito, senhores. Os objetos StoredProc (ADO, BDE e DBX) possuem o método Cancel. O post foi criado porque um colega havia dito que não seria possível e o fiz antes de verificar os objetos. Grato pela atenção.
GOSTEI 0