BeginTrans com ADO e Access.

19/05/2008

3

Questiono sobre a utilização do

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.


Responder

Posts

19/05/2008

Paulo

Posso estar enganado, mas acho que vc já respondeu. O ACCESS não é um banco de dados SGBD, logo não suporta transações. O uso de um BeginTrans não vai adiantar em nada, acho que é isso.


Responder

19/05/2008

Pedroso

Bom Paulo. É nisso que acredito. Porem pesquisando no forum encontrei muita coisa a respeito. Alguem mais se atreve?


Responder
Prezados,

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.


Responder

26/02/2009

Gersonroj

Apesar do Access não ser um SGBD vale as regras de transação.

Sempre usei para evitar a inclusão parcial de dados nas tabelas e bases Access.


Responder

05/03/2009

Pedroso

Obrigado a todos, e so para levantar de novo a questão dobre DbExpress ADO deem uma olhada no site

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.


Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários. Para saber mais sobre o uso de cookies,
consulte nossa política de privacidade. Ao continuar navegando em nosso site, você concorda com a nossa política.

Aceitar