[firebase-br] Controle transacional DUVIDA
Luis
luisfirevb em gmail.com
Dom Jun 28 11:29:39 -03 2009
Bom dia pessoal.
Desculpe a pergunta de iniciante, mas estava lendo/estudando e tenho uma
grande dúvida sobre transações Firebird.
Como dito aqui na lista: " ...mesmo em um SELECT simples (apenas de
consulta) é preciso COMITAR para não ficar TRANSACTION pendente." Então como
funciona no Firebird?
read-commited
read-only
auto-commit
Isolation
ReadOnly
AutoCommit
Programo em Visual Basic 6 + ADO e estou estudando o VB.Net e ADO.NET para
migração do meu sistema, que também passará de MS Access para Firebird e MS
SQL Server.
No VB 6 faço assim por exemplo de consulta simples e para qualquer acesso ao
DB:
310 If Conectar Then '# Verifica se há conexão aberta e conexão caso
contrário
320 cn.BeginTrans '# inicio uma transação (só conheço esse tipo)
330 bTransIniciada = True '# marco uma variável para controle interno
que existe uma transação caso ocorra erro
340 Set rs1 = New ADODB.Recordset '# Crio novo objeto recordset
350 rs1.CursorLocation = adUseClient '# seto ele com cursos no
cliente e não no servidor
380 rs1.Open "SELECT campo FROM tabela WHERE condicao;", cn,
adOpenStatic, adLockReadOnly, adCmdTableDirect
390 cn.CommitTrans
400 bTransIniciada = False
410 End If
420 rs1.ActiveConnection = Nothing '# finalize conexão do recordset
para uso local
540 rs1.Close '# fecho recordset
Nota: A transação aqui é feita pelo ADO (BeginTrans, commitTrans e
RollbackTrans = se der erro para desfazer tudo)
O motivo da dúvida é que parte das explicações aqui são referentes a Delphi
e componentes para uso com ele, então gostaria de saber como funciona uma
transação no Firebird.
Obrigado pela ajuda.
Luis
Mais detalhes sobre a lista de discussão lista