我在对ADOtable初始化是由以下代码,想根据不同的DataSource动态的给DBgrid加上Title,但运行中老提示“list index out of Bounds(0)”, 换成Add好像也不行!
各位请问该如何是好????with adotable_sttype do
 begin
 Connection :=data_dbconn.adoconn_db;
 TableName :='T_STTYPE';
 Fields[0].FieldName:='sttype_id';
Fields[1].FieldName:='sttype_name';
 Fields[2].FieldName:='sttype_score';
 Fields[0].DisplayLabel :='type';
 Fields[1].DisplayLabel :='name';
 Fields[2].DisplayLabel :='score';
 Filter:='sttype_name<>'''+'''';
 Filtered :=true;
 Open ;
 datasource_sttype.DataSet :=adotable_sttype;
 end;

解决方案 »

  1.   

    不用如此麻烦吧,楼主在TABLE上双击,右键-》ADD ALL FIELDS,然后在列出的每个字段的DISPLAYLABLE属性填写你所要显示的字段名称,去掉你的代码就OK了,试试效果吧。
      

  2.   

    应该是自动增加的,你可能在FieldCount方面搞错了
      

  3.   

    如果你是用ADOTABLE的话,可以有楼上的方法,借宝地一用,我也有一个问题,就是如果用ADOQUERY的话如何来设置这个功能,多谢楼主
      

  4.   

    你的代码中:
     Fields[0].FieldName:='sttype_id';
    Fields[1].FieldName:='sttype_name';
     Fields[2].FieldName:='sttype_score';
     Fields[0].DisplayLabel :='type';
     Fields[1].DisplayLabel :='name';
     Fields[2].DisplayLabel :='score';
    有没有第三列呢?如果出错是如你所述的话,原因可能就是在此了:没有第三列而你却引用第三列的属性,所以会出错!去掉两个fields[2]的引用吧!
      

  5.   

    不好意思!虽然我用别的办法已经实现了!
     jpyc(智若愚) 同志:你没由明白我得意思,若是Dbgrid与Adotable一对一,我当然知道那样做了!问题是一对多!