[firebase-br] Transacoes no DBExpress (Conclusao)

Francisco Thiago jeandeadlucky em yahoo.com.br
Qui Maio 19 14:22:49 -03 2005


Olá PHA!

Cara, deixa eu ver se entendi:

Quando agente faz alguma operação (select, insert, update, delete) no DBX 
sem iniciar uma transação, ele cria uma automaticamente e mantém ela, a 
transacao, como XXXRetaining?

No caso do uso do DBXPress com ClienteDataSet eu também encontro este tipo 
de erro (no ApplyUpdates) ou o DataSetProvider controla direitinho as 
transações?

Se o Commit só é dado quando fazemos um controle manual das transações, 
posso considerar, então, manter a propriedade KeepConnection do 
SQLConnection setada como false?


Obrigado

Francisco Thiago de Almeida
Enter&Plug Informática
Divisão: Desenvolvimento e Banco de dados
MSN: thiago em enterplug.com.br
Skype: enterplug_thiago


----- Original Message ----- 
From: "Pha-Lista" <lista em pha.com.br>
To: "FireBase" <lista em firebase.com.br>
Cc: <cflp_suporte em yahoogrupos.com.br>
Sent: Wednesday, May 18, 2005 3:50 PM
Subject: [firebase-br] Transacoes no DBExpress (Conclusao)


> Analizando as transacoes com o GStart -h
>
> Cheguei as seguintes conclusoes.
>
> 1) O DBExpress executa um Commit e nao o CommitRetainig isso pode ser 
> verificado no TSQLMonitor (
> isc_commit_transaction).
>
> 2) Mais se uma consulta e executada no banco e nao ha nenhum transacao 
> iniciada e criada uma internamente e esta transacao de leitura fica em 
> aberto (isc_commit_retaining) ate que o banco seja desconectado.
>
> - Nao sei dizer se depois de algum tempo esta transacao e finalizada.
>
> - Como esta transacao geralmente e apenas para leitura, nao sei o quanto 
> ele afeta no desempenho do FB, para os Updates uma transacao e iniciada e 
> finaliza com Commit ou RollBack, isso e feito automaticamente pelo metodos 
> PSStartTransaction, PSEndTransaction e PSInTransaction do TSQLDataSet ou 
> manualmente pelo desenvolvedor.
>
> - Pode se evitar que a transacao de leitura fique aberta iniciando uma 
> transacao para fazer as consultas e depois finalizando a com Commit, tem 
> tambem a propriedade SQLDataSet1.TransactionLevel, que pode ser utilizada 
> para indicar qual a transacao a ser utilizada, por padrao e 0 e a ultima 
> transacao ativa e utilizada.
>
> 3) Com algumas mudancas nos componentes do DBExpress ele pode facilmente 
> trabalhar como o IBX e o MDO com relacao as transacoes (quem sabe no 
> futuro crio componentes descentes que trabalhem desta forma).
>
> Os teste foram feitos:
>
> Windows XP Professional SP 2 super atualizado
>
> FB 1.5.2 SS com o CollatePT_BR instalado na mesma maquina
> Conexao=localhost:C:\Arquivos de programas\Firebird\examples\EMPLOYEE.FDB
>
> Delphi 6 UP 2 RTL 3
> Componetes: TSQLConnection, TSQLDataSet, TSQLMonitor, TClientDataSet e 
> TDataSetProvider
>
> LibraryName=dbexpint.dll
> VendorLib=GDS32.DLL
>
> PHA
> Nova Odessa / SP - Brazil
>
>
>
>


--------------------------------------------------------------------------------


______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
Para editar sua configuração na lista, use o endereço 
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa 








Mais detalhes sobre a lista de discussão lista