程序上有一个定时器 每2秒的定时去读一西数据库
我在程序上有一个读数据库ACCESS的如下 try
    AdoQuery1.Close;
    AdoQuery1.SQL.Clear;
    AdoQuery1.SQL.Text:='Insert into '+WriteTabel+'(DATEES,TIMER) VALUES('''+viewstring+''','''+TTime+''')';
    AdoQuery1.ExecSQL;
   except
   end;
try
   ADOQuery2.Close;
   ADOQuery2.SQL.Clear;
   ADOQuery2.ParamCheck:=False;
   ADOQuery2.SQL.Text:='select ID,TIMER from A where TIMER>=#'+chceksTime+'#';
   ADOQuery2.Open;
  except
  end;
DBGrid2.DataSource.DataSet.RecNo:=ADOQuery2.RecordCount;
Edit8.Text:=DBGrid2.DataSource.DataSet.Fields[0].AsString;Edit8用来显示最后一个记录的 运行的时候发现个当程序运行到60条以后就不能显示到60条以后的内容了 好像停在那里一样。程序上是每2秒插入一条数据然后在把整个表的数据都显示出来 所以一开始运行的时候数据显示为1,12,123,1234.这样的逐步增加的显示,但为什么到60条记录后DBGRID就停在那里了 没有望下显示了,多次查看大不份都是60条以后停住 一般是61条或63条停住

解决方案 »

  1.   

    ADOQuery2.SQL.Text:='select ID,TIMER from A where TIMER>=#'+chceksTime+'#'; 
    此处的TIMER>=#'+chceksTime+'#'; 有没有问题?
      

  2.   

    没有问题 这个只是给他显示的起点开始数据数据库的表的内容是这样的
    ID  DATEES  TIMER
    1   100000  2009-06-28 09:30:31
    2   100000  2009-06-28 09:30:33
    3   100000  2009-06-28 09:30:35
    4   100000  2009-06-28 09:30:37
    5   100000  2009-06-28 09:30:39
    .
    .
    .
    ADOQuery2.SQL.Text:='select ID,TIMER from A where TIMER>=#'+chceksTime+'#'; 这个句是要当程序开始运行的时候设定读取的第一条数据 我程序上是想把程序开始的时候插入一行读一行 把程序上插入的数据都显示出来
      

  3.   

    这么和记录的数有关呢?
    ID  DATEES  TIMER 
    1  100000  2009-06-28 09:30:31 
    2  100000  2009-06-28 09:30:33 
    3  100000  2009-06-28 09:30:35 
    4  100000  2009-06-28 09:30:37 
    5  100000  2009-06-28 09:30:39 



    我的数据这样存储 在程序一打开后就每两秒给数据库插入一条数据 同时也把插入的数据显示 显示的方式是1,12,123,1234,12345,123456,1234567,...这样的显示出来 当显示到123456...60之后的数据就显示不出来了
      

  4.   

    Timer1事件启动时,要使timer1的enabled为false,待执行完毕后,再将其置为true
    timer1.enabled := false;
    try
      try 
        AdoQuery1.Close; 
        AdoQuery1.SQL.Clear; 
        AdoQuery1.SQL.Text:='Insert into '+WriteTabel+'(DATEES,TIMER) VALUES('''+viewstring+''','''+TTime+''')'; 
        AdoQuery1.ExecSQL; 
      except 
      end; 
    try 
      ADOQuery2.Close; 
      ADOQuery2.SQL.Clear; 
      ADOQuery2.ParamCheck:=False; 
      ADOQuery2.SQL.Text:='select ID,TIMER from A where TIMER>=#'+chceksTime+'#'; 
      ADOQuery2.Open; 
      except 
      end; 
    DBGrid2.DataSource.DataSet.RecNo:=ADOQuery2.RecordCount; 
    Edit8.Text:=DBGrid2.DataSource.DataSet.Fields[0].AsString; 
    finally
      timer1.enabled := true;
    end;
      

  5.   


    我表上是有超过60条的数据 
    但是我只显示出60条其余的显示不出来 我用的是ADOQuery这个控件,用DBGrid这个显示数据 但是在DBGrid那里设置设置最长的显示呢???