Transção em Delphi6 com Access2000

Delphi

19/09/2003

1- Como devo fazer uma transação no seguinte caso:
Ao fechar uma venda tenho que executar as seguintes rotinas:
a- Gravar os arquivos de cabeçalho e itens de venda.
b-Chamar uma função que atualiza o saldo em estoque dos produtos vendidos.
c-Chamar uma função que atualiza o arquivo de contas a receber.
d-Atualizar o arquivo de movimentação de estoques.
Caso algumas destas operações não tenha sucesso, gostaria de cancelar as demais.
2-Como faço para que quando um DBGrid esteja em estado de edição ou inserção de registros, o usuário não posso movimentar o cursor para cima ou para baixo, não possa sair da linha atual?

Obs.: Utilizo Delphi6,Access2000 e ADO.
Grato.


Cfreitas

Cfreitas

Curtidas 0

Respostas

Biriga

Biriga

19/09/2003

Cara fiz uma conversao de dados tava dando muito pau depois usei uma propriedade do proprio componete [BeginTrans] com [Try]pra resolver meu problema. tambem no except pode especificar o erro de banco de dados [edatabaseerro] veja

[u:0a02ea5045]Try[/u:0a02ea5045]
[b:0a02ea5045]dmPrincipal.dbFajPrincipal.BeginTrans[/b:0a02ea5045];

sua programacao....

[b:0a02ea5045]dmPrincipal.dbFajPrincipal.CommitTrans;[/b:0a02ea5045]
[u:0a02ea5045]except [/u:0a02ea5045]
showmessage(´erro na turma´+P_TurmaCodigo.AsString);
[b:0a02ea5045]dmPrincipal.dbFajPrincipal.RollbackTrans;[/b:0a02ea5045]
[u:0a02ea5045]end;[/u:0a02ea5045]

////////////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Para travar o grid no evento beforepost da Query ferifico uma variavel bolean de nome salvaRecord ele e private salva record so e setada como true quando o usuario clica no botao salvar.
veja
procedure TfrmCadAluno.tblAlunoBeforePost(DataSet: TDataSet);
begin
inherited;
if not salvarecord then abort;
end;


GOSTEI 0
POSTAR