在Access2000中添加记录越来越慢!!!

                            
各位:   
      我在向Access2000中添加记录时,发现速度越来越慢!需要添加的记录为3281,前面执行时速度还可以接受,可是当添加了大约1200条记录后,速度陡减,简直无法忍受!  
  代码如下:  
   
  while   not   eof   do  
      begin  
          with   ADOQueryExe   do  
          begin  
              close;  
              sql.Clear   ;  
              sql.Add('select   zkzh   from   zkz   where   bmxh=:bmxh   and   groupID=:groupID   and   Passed="0"');  
              bmxh:=ADOQuerySel.fieldbyname('bmxh').AsString   ;  
              parameters.ParamByName('bmxh').Value   :=bmxh   ;  
              parameters.ParamByName('GroupID').Value   :=ADOQuerySel.fieldbyname('groupID').Value   ;  
              open;  
              if   recordCount=0   then  
              begin  
                  zkzh:=copy(bmxh,1,8)+GetSerial(ADOQueryexe);  
                  //zkzh,xm,Xbdm,Mzdm,Csny,Dw,Xxlbdm,Bz,PassEd,bmxh,GroupID  
   
                  sql.Clear   ;  
                  sql.Add(sqlIns);  
                  parameters.ParamByName('zkzh').Value   :=zkzh;  
              end  
              else  
              begin  
                  sql.Clear   ;  
                  sql.Add(sqlUpd);  
              end;  
              parameters.ParamByName('xm').Value   :=ADOQuerySel.fieldbyname('xm').AsString     ;  
              parameters.ParamByName('Xbdm').Value   :=ADOQuerySel.fieldbyname('Xbdm').AsString     ;  
              parameters.ParamByName('Mzdm').Value   :=ADOQuerySel.fieldbyname('Mzdm').AsString   ;  
              parameters.ParamByName('Csny').Value   :=ADOQuerySel.fieldbyname('Csny').AsString   ;  
              parameters.ParamByName('Xxlbdm').Value   :=ADOQuerySel.fieldbyname('Xxlbdm').AsString   ;  
              parameters.ParamByName('PassEd').Value   :=ADOQuerySel.fieldbyname('PassEd').AsString   ;  
              parameters.ParamByName('bmxh').Value   :=ADOQuerySel.fieldbyname('bmxh').AsString   ;  
              parameters.ParamByName('Dw').Value   :=ADOQuerySel.fieldbyname('dw').AsString   ;  
              parameters.ParamByName('Bz').Value   :=ADOQuerySel.fieldbyname('bz').AsString   ;  
              parameters.ParamByName('GroupID').Value   :=ADOQuerySel.fieldbyname('GroupID').AsString   ;  
              try  
                  execsql;  
                  frmpro.ProgressBar1.Position   :=ChangeCount;  
                  frmpro.leb_Name.Caption   :=ADOQuerySel.fieldbyname('xm').AsString   ;  
                  frmpro.lab_ID.Caption     :=ADOQuerySel.fieldbyname('bmxh').AsString+'     '+ADOQuerySel.fieldbyname('GroupID').AsString+'组';;  
                  frmpro.Repaint   ;  
              except  
              begin  
                frmPro.Destroy   ;  
                showmessage('数据库操作失败,无法生成考生准考证号!');  
                exit   ;  
              end;  
              end;  
          end;  
          ChangeCount:=ChangeCount+1;  
          next;  
      end;  
   
  采取的措施如下:  
  1.创建索引:Create   index   iZkzh   on   zkz(zkzh)  
  2.CacheSize=1000  
  3.设置ADOQuery.PrePare:=true  
   
  各位有何高见?  
  P4   2.4G   Ram=256M   Disk=80G  
 

查看回复