trabalhando com transações...
bom dia,gostaria da opinião(sugestão) do pessoal do fórum em relaçãoa minha rotina de tratamento de transações envolvendo o b.d.,segue a rotina://efetuo o insert ou updateMeuProprietario.Cadastrar;//retorna Id do ProprietarioCampos:='GEN_ID(GENPROPRIETARIO_ID, 0)';Tabela:='RDB$DATABASE';Complemento:='';Seleciona(Campos,Tabela,Complemento);EId.text:=DMDados.DSPrincipal.DataSet['GEN_ID'];//trabalho com a transaçãoif not DMDados.IBTFidelizando.InTransaction then DMDados.IBTFidelizando.StartTransaction;DMDados.IBTFidelizando.Commit; messagedlg('Registro Salvo.',mtInformation,[mbOK],0);Obs.: Minhas query´s se concentram em um único Data Module, com a seguinte estrutura: IBDatabase->IBTransaction->IBQuery->DataSourceabro e fecho as query´s somente quando as preciso e o IBTransaction está com os seguintes parâmetros: read_committed, rec_version. Não utilizocomponentes DataWare, faço o controle manualmente em Edit´s.Obs2.: Observa-se q não faço uso de um Rollback numa exception por exemplo,isso seria adequado ???...só faço uso do Rollback apenas em cadastrosMaster/Detail, onde no OnClose do Form, verifico se não houve a inserção ou alteração(pelo Id do form).
Discussão (2)
Carregando comentários...