[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