BeginTrans com ADO e Access.
19/05/2008
0
begintrans
commit
rolback
Em trasações ADO com Access. Considerando que a tabela Access esteja na rede e uma pequena rede de 10 computadores estejam ultilizando a tabela. Questiono pois não existe nenhum SGDB na ponta e não compreendo a ultilização de um recurso que comece uma transação.
Por favor quem obtiver uma resposta poste.
Pedroso
Posts
19/05/2008
Paulo
19/05/2008
Pedroso
16/12/2008
Garoto Programa
Vi que existe um equivoco quanto a utilização de transações com arquivos no formato access.
Segundo Marco Cantú em seu livro Dominando o Delphi 7 “A Bíblia” você pode descobrir se pode utilizar transações com o seu banco de dados utilizando a propriedade dinâmica Transaction DDL da conexão:
If ADOConnection1.Properties[‘Transaction DDL’].Value > DVPROPVAL_TC_NONE then ADOConnection1.BeginTrans;
Uma característica do access é que se você utiliza OLE DB ODBC você pode trabalhar com transações mas não transações aninhadas, ao abrir uma segunda transação sem finalizar a primeira retorna erro. Utilizando o mecanismo Jet vai funcionar perfeitamente as transações aninhadas, lembrando que o limite do access é de 5 transações aninhadas.
Quanto a duvida do Pedroso sobre não existir um SGBD, quem faz este trabalho é o ADOConnection. Os dados ficam na memória até ser feito um CommitTrans, para descarregar no banco, ou um RollBackTrans, para descartar as atualizações(Inclusão, exclusão, atualização, etc).
Abraço a todos.
26/02/2009
Gersonroj
Sempre usei para evitar a inclusão parcial de dados nas tabelas e bases Access.
05/03/2009
Pedroso
http://sourceforge.net/project/showfiles.php?group_id=38250
Testei e funciona, nele há um drive DbExpress para Jet.
Mas uma vez obrigado a todos.
Clique aqui para fazer login e interagir na Comunidade :)