请请教一下在DELPHI中如何循环执行存储过程

                            
因为在数据录入窗口是一个表格,一次可以录入很多各类数据,而且每一个数据都有自己相应的指标,为了算出相应的得分,我用存储过程来实现,但现在问题是若在表格中只输入一个数据时就可以实现,但输入多个就出错!请各位大哥帮忙看一下,我想就是存储过程循环的问题,但不知道怎么改:以下是源码:   
            if   lxmc   =   '四时类型'   then  
            begin  
                      for   i   :=   0   to   m-1   do   //行循环  
                      begin  
                                for   j   :=   0   to   n-1   do   //列循环  
                                if   SG_sjz.Cells[j+2,i+1]   <>''   then   //判断数据不为空时进行以下操作  
                                begin  
                                          ph   :=   strtoint(SG_sjz.Cells[0,i+1]);   //赋值给变量  
                                          sj   :=   strtofloat(SG_sjz.Cells[j+2,i+1]);  
                                          ADOSP_sjz.Close;     //存储过程开始  
                                          ADOSP_sjz.ProcedureName:='hyz_df';  
                                          ADOSP_sjz.Parameters.Clear;  
                                          ADOSP_sjz.Parameters.CreateParameter('@ph',ftinteger,pdinput,4,ph);  
                                          ADOSP_sjz.Parameters.CreateParameter('@sj',ftfloat,pdinput,8,sj);  
                                          ADOSP_sjz.Parameters.CreateParameter('@df',   ftfloat,   pdoutput,4,0);  
                                          ADOSP_sjz.Prepared   :=   True;  
                                          ADOSP_sjz.ExecProc;  
                                          df   :=   floattostr(ADOSP_sjz.Parameters.ParamByName('@df').Value);  
                                          ADOSP_sjz.Free;//存储过程结束,根据返回值一起录入数据库  
                                          ADOCM_sjz.CommandText   :=   'insert   into   ysjlrb(phid,sqz,sjdf,sbd,bb,sjd,rj,hyy)   values('''+SG_sjz.Cells[0,i+1]+''','''+SG_sjz.Cells[j+2,i+1]+''','''+df+''','''+CBB_bd.text+''','''+CBB_bb.text+''','''+SG_sjz.Cells[j+2,0]+''','''+datetostr(DTP_sjz.date)+''','''+LB_hyy.Caption+''')';  
                                          ADOCM_sjz.Execute;  
                                end;  
                      end;  
            end;

查看回复