问个抵挡的问题,请问,用IBQuery控件的时候..
问个抵挡的问题,请问,用IBQuery控件的时候,怎样才能把update,Insert into和Delete 的结果马上反映到数据库呢?!我用ExeCSQL!好象要等关闭整个程序才能提交到数据库的!!怎么办?
问题点数:20、回复次数:1Top
1 楼ybchen(我)(是)(菜)(鸟)(我)(怕)(谁)回复于 2003-12-03 20:52:48 得分 20
假设 IBQuery1 连接到了 IBTransaction1 上
try
{
IBQuery1->ExecSQL(); //执行 SQL
IBTransaction1->Commit(); //如果执行SQL成功,提交执行结果,数据马上生效
}
catch(Exception &e) //如果执行失败
{
if(IBTransaction1->InTransaction) //如果有执行的事务
IBTransaction1->Rollback(); //取消执行的事务
ShowMessage("出错啦! 错误信息为:\r\n"+e.Message);
}
Transaction:
有两个提交的方法:Commit(); 和 CommitRetaining();
有两个撤销的方法:Rollback(); 和 RollbackRetaining();
前面的提交或者撤销之后所有与这个Transaction连接的Query全部关闭,需要重新打开(Active)
后面的提交或者撤销之后所有与这个Transaction连接的Query都保持原来状态,但显示的数据不一定是最新的了(由于本次操作的原因)。
Top




