Cancelar operacao de inclusao de dados de forma limpa
Criei um programa para inserir dados de um banco de dados para outro. Quando se clica no botao Importar, eu o desativo para evitar problemas de dois cliques sucessivos. Tem um botao de Fechar a operacao, mas me retorna erro de dataset. Entretanto, qual a maneira mais limpa de cancelar o processo de importacao, sem deixar lixo ou obter mensagens de erro referentes a clientdataset. Se estivar num processo de insercao via transacao, insere o ultimo registro apos o clique de cancelamento, fecha os clientdatasets e finalmente aborta a operacao. Alguem tem uma sugestao limpa, e se possivel, um trecho de codigo para acelerar meu desenvolvimento?
Bugaloobr
Curtidas 0
Respostas
Pestana_
10/04/2007
eu uso os componentes ibx, mas acredito que deve ser semelhante, se estiver dados para serem gravados voce grava a transação (Transaction.Commit) ou se for simplesmente fechar a operação (Transaction.Rollback).
é isso que vc queria?
flw
é isso que vc queria?
flw
GOSTEI 0
Bugaloobr
10/04/2007
A resolucao eh por ai. No caso, supondo q o clique no botao Cancelar seja feita no meio do processo de inclusao de um registro. Neste caso, ele insere o registro atual e finalmente cancela a operacao global de insercao. Tentei, mas ainda nao consegui implementar uma rotina if conexaoBD.intrasaction then -- dataset.insercao.commit -- break ou cancel. Eh neste ponto que quero uma solucao limpa, e onde estou com problema para implementar.
GOSTEI 0
Pestana_
10/04/2007
ainda não consegui entender direito, é isso que vc quer?
no botão importar teria que ser definido mais ou menos assim:
try
....
....
....
Transaction.Commit;
exception
Transaction.Rollback;
end;
no botao Fechar operação:
....
....
....
Transaction.Rollback;
com isso quando voce clicar no botão Fechar operação todos os registros inseridos no banco
serão apagados.
no botão importar teria que ser definido mais ou menos assim:
try
....
....
....
Transaction.Commit;
exception
Transaction.Rollback;
end;
no botao Fechar operação:
....
....
....
Transaction.Rollback;
com isso quando voce clicar no botão Fechar operação todos os registros inseridos no banco
serão apagados.
GOSTEI 0