[firebase-br] Transacoes no DBExpress (Conclusao)
Paulo Geloramo
paulogeloramo em terra.com.br
Qua Maio 18 19:48:46 -03 2005
Uma solução que tentei foi fechar a transacao corrente
no evento onClose do form, mas sem sucesso, pois
o Commit exige o ID da transação, Como obter o ID da
transação corrente?
if SQLConnection1.InTransaction then
SQLConnection1.Commit(????);
[]s
Paulo Geloramo
-----Mensagem Original-----
De: "Pha-Lista" <lista em pha.com.br>
Para: "FireBase" <lista em firebase.com.br>
Cc: <cflp_suporte em yahoogrupos.com.br>
Enviada em: quarta-feira, 18 de maio de 2005 15:50
Assunto: [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