Procedure para salvar inclusão/alteração na tabela

Delphi

27/07/2004

Estou com o seguinto problema:
Eu preciso criar uma procedure para realizar um commit nas minha tabelas.
Encontrei uma apostila com o código abaixo.
procedure TfrmProduto.Save;
begin
  try
    TBDEDataSet(DSMain.DataSet).ApplyUpdates;
    TBDEDataSet(DSMain.DataSet).CommitUpdates;
  except
    ShowMessage(´Não foi possível realizar a operação.´);
  end;
end;

Tentei adaptá-lo no meu sistema, porém esse código acima está no formulário de cadastro e quero colocar no DataModule e acrescentando no evento AfterPost de cada query a chamada da procedure.
O problema é que não sei como pegar o DataSet sem precisar do DataSource, da forma mais genérica possível.
Tentei assim mas não deu certo:
procedure TDm.Save;
begin
  try
    TBDEDataSet(DataSet).ApplyUpdates;
    TBDEDataSet(DataSet).CommitUpdates;
  except
    ShowMessage(´Não foi possível realizar a operação.´);
  end;
end;


Espero que tenha conseguido explicar de forma clara :oops:

Qualquer sugestão/ajuda será bem-vinda. :wink:


Angelnoa

Angelnoa

Curtidas 0

Respostas

Rômulo Barros

Rômulo Barros

27/07/2004

Quais os componentes q vc utiliza para acesso a dados?

Faça assim:

procedure TDm.Save; 
begin 
  try 
    TClientDataSet(DataSet).ApplyUpdates; 
    TBDEDataSet(DataSet).CommitUpdates; 
  except 
    ShowMessage(´Não foi possível realizar a operação.´); 
  end; 
end;



GOSTEI 0
Angelnoa

Angelnoa

27/07/2004

Não utilizo TClientDataSet, apenas TQuery e TDataSource


GOSTEI 0
Reginaldo174

Reginaldo174

27/07/2004

Creio que vc deve usar Database, então faça assim :

procedure TForm1.Salvar(Nomequery: TQuery);
begin

try
Database1.StartTransaction;
Nomequery.ApplyUpdates;
Database1.Commit;
showmessage(´Registro Gravado !´);
except
Database1.Rollback;
showmessage(´Erro de Gravação !´);
raise;
end;

Nomequery.commitupdates;

end;


GOSTEI 0
POSTAR