Leonair 0 Denunciar post Postado Maio 27, 2008 Ola pessoal estou com o seguinte problema....antes de inserir elementos em uma tabela auxiliar eu preciso deletar todos os dados dessa tabela, para isso eu uso o codigo abaixo. O estranho e que fazendo passo a passo verifiquei que o programa não deleta os dados da tabela ele pula da linha IBTransaction2.StartTransaction; ja para IBTransaction2.Rollback, mais não mostra a mensagem de erro......Outra coisa e que esse codigo sempre funciona em outros locais.....o que deve estar errado.....se utizo so a query sem utilizar a transação não da erro mais tb não funciona. Estou usando delphi 7 com interbase 6.5 with IBQuery2 do begin try if IBTransaction2.active then IBTransaction2.Commit; IBTransaction2.StartTransaction; IBQuery2.close; IBQuery2.sql.clear; IBQuery2.sql.add('delete from tb_depeaux'); IBQuery2.open; IBTransaction2.commit; except IBTransaction2.Rollback; showMessage('Ocorreu um erro ao tentar salvar informações.'); exit; end; end; Agradeço a ajuda... Compartilhar este post Link para o post Compartilhar em outros sites
João Paulo Taraciuk 0 Denunciar post Postado Maio 27, 2008 Eu não utilizo a IBQuery, mas de repente pode ser um begin faltando por aí with IBQuery2 do begin try if IBTransaction2.active then begin IBTransaction2.Commit; IBTransaction2.StartTransaction; IBQuery2.close; IBQuery2.sql.clear; IBQuery2.sql.add('delete from tb_depeaux'); IBQuery2.open; IBTransaction2.commit; except IBTransaction2.Rollback; showMessage('Ocorreu um erro ao tentar salvar informações.'); exit; end; end;Aí tem que por mais um end no final, porque quando está somente then, o delphi realiza o procedimento de apenas uma linha. Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Maio 27, 2008 Ele não mostra a mensagem de erro visto que cai no except para ser tratado o erro, se quiser ver qual o erro, tire o try except, ou então capture o erro e mostre na tela, dependendo do que esta querendo excluir pode ter problema de alguma chave de relacionada que não permita a exclusão. E esta um pouco confuso este seu fonte, tente algo como: with IBQuery2 do begin try if IBTransaction2.active then IBTransaction2.Commit; IBTransaction2.StartTransaction; IBQuery2.close; IBQuery2.sql.clear; IBQuery2.sql.add('delete from tb_depeaux'); IBQuery2.open; IBTransaction2.commit; except if IBTransaction2.active then IBTransaction2.Rollback; showMessage('Ocorreu um erro ao tentar salvar informações.'); exit; end; end; Compartilhar este post Link para o post Compartilhar em outros sites