[firebase-br] Firebird X Transacao X .NET

Magno System magnosysteminformatica em gmail.com
Qui Ago 19 10:25:49 -03 2010


Marcelo, não programo em .NET mas pelo que eu ACHO que entendi do código 
você abre e fecha a conexão a cada transação. Não é necessário fechar a 
conexão. Abra e feche somente a transação.


----- Original Message ----- 
From: "Marcelo Moreira" <marcelomoreira.souza em gmail.com>
To: "FireBase" <lista em firebase.com.br>
Sent: Thursday, August 19, 2010 10:13 AM
Subject: [firebase-br] Firebird X Transacao X .NET


Pessoal,
Depois que comecei a implementar controle de transação em um aplicativo .NET
usando o Firebird notei que o sistema ficou um pouco mais lentro para
executar as operações no banco. Isso é normal? Seria devido ao uso "agora"
dos controles de transacoes?
Deixo abairo um pedaco do codigo, sera que eu estou fazendo algo errado?

            IDataReader iDataReader = null;
            StringBuilder sbSql = new StringBuilder();
            sbSql.Append("select USERPASSWORD from CUSTOMER_USER where
USERNAME = @USERNAME");

            FbCommand fbCommand = new FbCommand();
            FbTransaction fbTransaction = null;

            try
            {
                this.firebirdConnection.Open();
                fbTransaction =
this.firebirdConnection.FbConnection.BeginTransaction();
                fbCommand.Connection = this.firebirdConnection.FbConnection;
                fbCommand.Transaction = fbTransaction;
                fbCommand.CommandType = CommandType.Text;
                fbCommand.CommandText = sbSql.ToString();
                fbCommand.Parameters.Clear();
                fbCommand.Parameters.Add("USERNAME", UserName);
                iDataReader = fbCommand.ExecuteReader();
                while (iDataReader.Read())
                {
                    passwordBD = iDataReader["USERPASSWORD"].ToString();
                }
                iDataReader.Close();
                fbTransaction.Commit();
            }
            catch (Exception ex)
            {
                fbTransaction.Rollback();
                throw new Exception(ex.Message);
            }
            finally
            {
                iDataReader.Dispose();
                fbCommand.Dispose();
                fbTransaction.Dispose();
                this.firebirdConnection.Close();
            }

No caso estou usando o Firebird 2.1.3

Obrigado a todos pela atenção.

-- 
Marcelo Moreira
(31) 8420-2723
E-mail / MSN: marcelomoreira.souza em hotmail.com
E-mail: marcelomoreira.souza em gmail.com
Skype: marcelomoreira.souza
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use: 
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa 





Mais detalhes sobre a lista de discussão lista