[firebase-br] RES: Firebird X Transacao X .NET
Marcelo Moreira
marcelomoreira.souza em gmail.com
Qui Ago 19 13:32:40 -03 2010
Ivan,
Obrigado pelo retorno!
O que acontece é que eu preciso ter o controle das transacoes.
Neste caso ai trata-se de um simples select mas mesmo assim eu preciso dar o
commit para nao ficar com transacoes pendentes no banco.
A duvida ai é pq depois que comecei a iniciar a transacao e depois dar
commit o aplicativo demora um pouco mais a responder.
Obrigado pela atenção.
Em 19 de agosto de 2010 12:16, Ivan Guimarães Meirelles <
igmeirelles em gmail.com> escreveu:
> 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
>
>
> ______________________________________________
> 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
>
--
Marcelo Moreira
(31) 8420-2723
E-mail / MSN: marcelomoreira.souza em hotmail.com
E-mail: marcelomoreira.souza em gmail.com
Skype: marcelomoreira.souza
Mais detalhes sobre a lista de discussão lista