用了一个定时器给数据库(ACCESS)每两秒插入一个数据,当插入的时候程序不知道怎么的卡了一下。
在数据库直接到开看到的数据有322条,但是用ADO连接显示却只能显示300条
try
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.sql.Text:='select *from 20090629 ';
  ADOQuery1.open
  except
  end;
 Edit1.Text:=IntToStr(ADOQuery1.RecordCount);
用这段代码显示DBGrid只显示出300条 但是Edit1.Text却显示出有322条的记录~!不知道为什么了奇怪了,
重新换一个窗口连接也只能显示到300条郁闷死了

解决方案 »

  1.   

    感觉很奇怪
    用try 
      ADOQuery1.Close; 
      ADOQuery1.SQL.Clear; 
      ADOQuery1.sql.Text:='select *from 20090629 '; 
      ADOQuery1.open 
      except 
      end; 
    这样不能显示到300到322的记录

    try 
      ADOQuery1.Close; 
      ADOQuery1.SQL.Clear; 
      ADOQuery1.sql.Text:='select *from 20090629 where id>300'; 
      ADOQuery1.open 
      except 
      end; 
    却能显示出300到322的记录
    ADOQuery1.sql.Text:='select *from 20090629 '; 这句不是显示全部的记录吗?怎么只能显示到300呢
      

  2.   


    try 
      ADOQuery1.Close; 
      ADOQuery1.SQL.Clear; 
      ADOQuery1.sql.Text:='select *from 20090629 where id>250'; 
      ADOQuery1.open 
      except 
      end; 
    的话只能显示出250 到300的记录 感觉好像是被分页了 第一次遇见真奇怪 那位朋友知道的帮帮忙
      

  3.   

    看看你的cxgrid里的dbTableView--->DataControll--->DataModeController一个属性:GridModeBufferCount,这个设置Cxgrid的行数,你是不是这里设置了300行?!
      

  4.   

    呵呵 但是很奇怪的是没有加上order by ID asc这句排序的时候它有的时候会发生错乱 有的时候没有发生 真是怕了它了 看来还是要乖乖的给他加上一个排序