Fórum Mestre-detalhe não deleta registro #516208
09/04/2015
0
Tenho um mestre-detalhe IBDataset(mestre) e IBTable(detalhe) em sistema de estoque. Quando da emissão do cupom caso tenha que que excluir um item o sistema faz tudo certo o cupom é emitido sem aquele item que foi apagado e tudo joinha. Mas o registro que foi apagado na aplicação ainda está no banco e não se apaga de jeito nenhum, já fiz de tudo que esperava dar certo e nada.
segue parte do código:
procedure TfrmTelaPDV.editExcluirExit(Sender: TObject);
begin
if dm2.cds_Detalhe.Locate('item', editExcluir.Text, []) then //// operador informa o item do cupom para excluir
begin
if MessageDlg('Confirma a Exclusão do Item?',mtConfirmation, [mbYes,mbNo],0)= mrYes then
begin
MemoEditExcluido(); ///insere linha de dedução do item no cupom
dm2.cds_detalhe.Delete; /// deleta o item mas antes devolve o item ao estoque e recalcula os valores do cupom tudo ok
end;
end
else
ShowMessage('Item não Encontrado');
telaExcluirItem.Visible := false;
EdtCodProd.SetFocus;
end;
Ao final o registro ainda está no banco, não foi apagado fisicamente;
já coloquei logo abaixo dm1.IBTrans2.CommitRetaining; mas também não resolve.
Me ajudem por favor.
Delphi7 / Firebird 2.5 / IBExpert
Marcos Roberto
Curtir tópico
+ 0Posts
09/04/2015
Thiago Santana
Gostei + 0
09/04/2015
Marcos Roberto
Outra coisa é que o arquivo mestre está correto seus valores, digo já sem os produtos excluidos.
Gostei + 0
09/04/2015
Marisiana Battistella
Gostei + 0
09/04/2015
Marcos Roberto
Gostei + 0
14/04/2015
Marisiana Battistella
Adquiri pouca experiência me programação com Delphi, mas a causa mais provável é que a inserção não esteja sendo efetuada de fato.
Você chegou a testar linha a linha para verificar se as informações estão sendo buscadas corretamente?
Lembro que existe um recurso para fazer esse tipo de verificação...
Gostei + 0
14/04/2015
Marcos Roberto
Como disse, em tempo de execução tudo dá certo, o cupom sai sem o item excluido. O relatorio das vendas sai correto, somente se voce for listar todos os itens daquele cupom o excluido aparece, por estar no banco.
Não sei mais o que fazer, somente um expert em BD poderá dizer o que está acontecendo.
Muito agradecido;
Gostei + 0
15/04/2015
Marisiana Battistella
Verifica se após emitir esse cupom não está sendo realizado um rollback.
Gostei + 0
15/04/2015
Marcos Roberto
valeu.
Gostei + 0
15/04/2015
Marisiana Battistella
Gostei + 0
15/04/2015
Marisiana Battistella
No CommitRetaining a transação é gravada, mas continua aberta, não sendo necessário restartar.
Gostei + 0
15/04/2015
Marcos Roberto
Valeu..
Gostei + 0
15/04/2015
Marisiana Battistella
Então, no teu caso, como não está excluindo o item do banco de dados, em algum momento está precisando realizar o COMMIT para efetivar a deleção do registro.
Gostei + 0
22/04/2015
X Me
Assim quando você alterar ou apagar algum registro o mestre detalhe também apaga os filhos desse registro.
Gostei + 0
22/04/2015
Marcos Roberto
Estou usando IBDataSet (mestre) e IBTable (detalhe) será que tem que habilitar também algum evento?
Obrigado !
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)