Selecao DevMedia QUERO SER PRIME

Fórum Cancelar operacao de inclusao de dados de forma limpa #340166

10/04/2007

0

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

Bugaloobr

Responder

Posts

10/04/2007

Pestana_

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


Responder

Gostei + 0

12/04/2007

Bugaloobr

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.


Responder

Gostei + 0

12/04/2007

Pestana_

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.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar