AdoConnection1.BeginTrans;  
try  
 with  spTemp  do  begin  
       ProcedureName:='spXXX';  
       with  Parameters  do  begin  
         Refresh;  
         ParamByName('@ANo').value:='';  
       end  
       ExecProc;  
 end;  
 AdoConnection1.CommitTrans;  
 Showmessage('完成!');  
except  
 AdoConnection1.RollbackTrans;  
 showmessage('失败!');  
end;  
结果,如果在spXXX中出错的话,仍旧会显示对话框“完成”,请问怎么办?  
 
CREATE  PROCEDURE  spXXX  
@ANo  varchar(10)
AS  
update  Table_OK  set  Num=Num+1  --这是一句正确的语句,如果去掉这一句,则可以捕获到错误,显示“失败”  
select  *  from  Table_No  --表Table_No是不存在的,但如果有上一句,在程序里则捕获不到此错误  
 
请问怎么解决这个问题啊?