Quinta-feira, Dezembro 02, 2004

Gravando os dados em Interbase com BDPProvider

Recebi a seguinte pergunta:

Fiz uma conexao com o banco e teste com o banco ele me retorna os registros efetados porém não comita no banco:
Estou usando ASP.NET com BDP e Firebird (Ja testei com Interbase) e no evento click do botão chamo a seguinte comando:

BdpConnection1.Open;
BdpCommand1.CommandText := TextBox1.Text;
r := BdpCommand1.ExecuteNonQuery();
TextBox2.Text := r.ToString + ' Registros Afetados';


Falta alguma coisa?


Verifiquei em minha máquina, em MS-SqlServer, o código funciona perfeitamente, ao executar uma Sql, os dados são gravados sem problemas, mas em Interbase, os dados não são gravados. O problema é a falta de uma transação e do respectivo commit. Modifiquei o código um pouco para incluir a transação, que ficou assim:



procedure TWebForm1.Button1_Click(sender: System.Object;
e: System.EventArgs);
var
r: Integer;
bdpTrans : BdpTransaction;
begin
BdpConnection1.Open;
bdpTrans := BdpConnection1.BeginTransaction();
BdpCommand1.CommandText := TextBox1.Text;

r := BdpCommand1.ExecuteNonQuery();
bdpTrans.Commit();

Label2.Text := r.ToString + ' Registros Afetados';
end;




0 Comentários:

Postar um comentário

<< Home