[firebase-br] RES: Firebird X Transacao X .NET

Ivan Guimarães Meirelles igmeirelles em gmail.com
Qui Ago 19 12:16:00 -03 2010


Olá Marcelo...

Trabalho com .Net e Firebird há algum tempo.
Não sei se entendi direito o que vc precisa com esse código, mas acho que vc
pode substituir tudo isso, por apenas algumas linhas q irão retornar a mesma
informação que vc deseja.

            FbDataAdapter da = new FbDataAdapter("select USERPASSWORD from
CUSTOMER_USER where USERNAME = @USERNAME",
this.firebirdConnection.FbConnection);
            da.SelectCommand.Parameters.Add("@USERNAME", UserName);
            DataTable dt = new DataTable();
            da.Fill(dt); da.Dispose();
            passwordBD = dt.Rows[0][0].ToString();

tentei adaptar ao seu código...
não há necessidade de abrir a conexão para um simples select.

Testa ai e ve se funciona...

Espero que ajude,
Um forte abraço.

-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Marcelo Moreira
Enviada em: quinta-feira, 19 de agosto de 2010 09:14
Para: FireBase
Assunto: [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