GARANTIR DESCONTO

Fórum Commit e Rollback mysql e delphi (Pra quem manja de delphi e mysql) #594611

02/06/2018

0

Pessoal, meu sistema tem uma relação N - N de tabelas que servem para o movimento de estoque. Tabela Produto, Notas Fiscais e a entidade entre elas Itens que são os itens da nota. Fiz todos os procedimentos necessários e agora elas estão relacionadas por inner join e mestre detalhe. Minha dúvida é a seguinte: Quando a pessoa vai realizar um movimento abre-se um form para cadastrar a nota fiscal. Depois de salva a nota abre-se um outro form para lançar os itens da nota. Se a pessoa fechar essa janela mostra um mensagem que se ela fechar sem lançar nenhum item a nota anteriormente cadastrada será excluída/cancelada. Se ela lançar pelo menos um item beleza. No entanto isso não está funcionando ainda. Se a pessoa fechar a janela gostaria que a nota de antes que foi cadastrada seja desfeita/cancelada/excluída e sei que para isso preciso do rollback e do commit do mysql. Como posso porceder? Estou usando o Zeos para ligar com o banco e um data módule .
Luiz Silva

Luiz Silva

Responder

Posts

03/06/2018

Frank Lima

Boa Tarde, Voce esta usando ODBC??
Responder

Gostei + 0

03/06/2018

Luiz Silva

Não Zeoslib Mysql! Preciso muito de ajuda preciso entregar esse tcc até dia 27/06
Responder

Gostei + 0

03/06/2018

Frank Lima

Seguinte.eu faço assim na minha tabela de notas, quando abro o form de lançar os itens, eu nao lanço eles de verdade, eu lanço eles em uma tabela temporaria, ai so depois do usuario apertar a confirmação no meu caso usei o atalho f3 que eu jogo na tabela verdadeira. no meu caso a tabela itens_nota. se voce usar a tabela temporaria acho que vai resolver o seu problema. eu uso ado com ODBC, uso clientdataset como tabela temporaria.
Responder

Gostei + 0

03/06/2018

Luiz Silva

Sim mas no meu caso é se a pessoa não lançar nenhum item entao a nota anteriormente cadastrada deveria ser excluida. Preciso gravar a nota primeiro no banco para gerar a chave primaria e ir para a chave estrangeira da tabela itens. Como poderia fazer isso?
Responder

Gostei + 0

03/06/2018

Frank Lima

Voce salva a nota depois acrescenta os itens né??
se tiver query, voce usa assim, Ex: Query1.Last. e da um delete.
Ou faz no comando SQL, SELECT MAX(NOTA_COD) FROM NOTA; e da um delete.
Responder

Gostei + 0

03/06/2018

Luiz Silva

Ok vou tentar aqui mas deixa eu ver se entendi. O Delete eu vou deletar a nota ok? Mas o last serve pra que?
Responder

Gostei + 0

03/06/2018

Frank Lima

Se voce usar query como tabela, ele busca o ultimo registro da tabela, mas pelo jeito nao e query q vc usa né. nao sei como funciona zeos como conexao do mysql, se vc ADO com obdc vc usaria adoquery como tabela
Responder

Gostei + 0

03/06/2018

Luiz Silva

Não eu uso o componente zquery sim. Para realizar as consultas. No entanto se eu deletar a nota anterior quando for gerada outra o id da que foi excluida não vai ser pulado? Ou será que isso importa muito?
Responder

Gostei + 0

03/06/2018

Frank Lima

não é pulado, ai qd for gerar outro id ele pega o ultimo, tbm, por exemplo se a nota deleta o id era 18, a nova vai ser 18.
Responder

Gostei + 0

03/06/2018

Luiz Silva

Será? Vou fazer uns testes amanhã. Qualquer coisa vc me ajuda?
Responder

Gostei + 0

04/06/2018

Frank Lima

Ajudo sim, só postar sua duvida certinho que eu te ajudo.
Responder

Gostei + 0

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

Aceitar