BeginTrans com ADO e Access.
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.
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
Curtidas 0
Respostas
Paulo
19/05/2008
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.
GOSTEI 0
Pedroso
19/05/2008
Bom Paulo. É nisso que acredito. Porem pesquisando no forum encontrei muita coisa a respeito. Alguem mais se atreve?
GOSTEI 0
Garoto Programa
19/05/2008
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:
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.
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.
GOSTEI 0
Gersonroj
19/05/2008
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.
Sempre usei para evitar a inclusão parcial de dados nas tabelas e bases Access.
GOSTEI 0
Pedroso
19/05/2008
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.
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.
GOSTEI 0