您当前的位置:delphi教程 > Delphi数据库相关  > 请请教一下在DELPHI中如何循环执行存储过程

请请教一下在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;


查看回复
关于我们 | 网站地图 | 广告刊登 | 友情链接
Copyright ©2008 - 2010  Delphi2007.net  ,All Rights Reserved  粤ICP备09038647号
业务联系:allceoad#gmail.com QQ:20008835 最佳分辨率 1024×768