我在程序中用SQL语句添加一条记录后,再用DBGRID显示时如果拖动滚动条到结尾就出错,提示"grid index out rang",这是什么原因引起的,应该怎么解决呢?求大家帮个忙.

解决方案 »

  1.   

    估计你的 DBGrid 某个事件里有自写的代码,估计代码出在这里面。
      

  2.   

    我业碰到过这个问题 但是只要鼠标在dbgrid单机一下
    旧没有问题了
      

  3.   

    我是在grid的cellclick里编写了一些代码.那这样的问题应该怎么解决呢.?
      

  4.   

    对啊,楼主太日撵了,你把问题说清楚说详细点不行啊
    把 cellclick 里的代码铁出来看看,别人才好分析,好帮你啊唉……
      

  5.   

    好的,好的.
    我用的两个窗口,fwithbin1,fwithbin.
    在fwithbin1里有一个DBgrid控件列出数据库中的所有记录,还有一个button控件和一个edit1,按button控件后根据EDIT中的数据内容判断是添加一条记录数据,如是弹出"fwithbin"窗口,在这个窗口里提供若干EDIT控件以便用户输入一笔记录所需的全部内容,
    我在fwithbin1中的DBGRID控件的CELLCLICK事件中的内容是:
    edit1.Text :=fdatazbzk.Quezbza.fieldbyname('zbhz05').AsString ;
    在fwithbin1中的FORMSHOW事件中代码为
    procedure TFwithbin1.FormShow(Sender: TObject);
    var
    rc:integer;
    begin
    edit1.Text:='';
    datetimepicker1.Date:=date;
    trywith fdatazbzk.Quezbza do
    begin
      close;
      sql.Clear ;
      sql.Add('select * from zbza.dbf' );
      open;
    end;
    rc:=fdatazbzk.Quezbza.RecordCount ;
    except    MessageBox(fwithbin1.handle,'非法操作引起的数据库无法打开,程序将退出', '非法操作', mb_OK);
        application.Terminate ;
    end;statusbar1.Panels[0].Text:='记录总数为:  '+inttostr(rc)+' 例'
    end;
      

  6.   

    edit1.Text :=fdatazbzk.Quezbza.fieldbyname('zbhz05').AsString ;
    这句不要了。