使用的是DBGridEH,  delphi 5.0 + Sql 2000

解决方案 »

  1.   

    其实这并不是因为数组从第几个下标开始的问题,下标为[0]的参数其实是一个返回值,我们不用给它赋值,但上面的问题我也有遇过,最后是我自己解觉的,兄弟们不妨试一下!
    在你给参数赋值的时候不要使用数组的下标,而直接使用StoredProc的ParamsByName()这个属性来给参数赋值,这样就不会引起上面的问题!
    大家可以试一下,如果有问题可以直接给我发邮件![email protected]
      

  2.   

    list index out of bounds(0)
    一般是由访问了没有创建的数组元素. 对于纯粹由数据库组件引起的上述提示,没有见过
      

  3.   

    你引用的字段不存在,或者假设
     select a,b,c,d from mm
    你使用label1:=fields[4].asstring;的时候
    Fields[4]这个字段根本就没有,(4假设)fields从0开始的索引
    再就是
    dbgrideh当中的字段取值不正确?
    :)仅仅推算,不知道代码错在那里?
      

  4.   

    是访问了不存在的index ,是越界了
      

  5.   

    是的,就是越界了。。
    你设置一个断点
    看index是否确实存在。。
      

  6.   

    数组越界,比如你的表有field有5个字段,你query的SQl里面有query.Fields[5],这样就越界了,因为filed数组是0基准的。同样,你的field一个字段都没有,你写field[0]就会出现list index out of bounds(0),建议用fieldbyname
      

  7.   

    可能是没有创建某个对象,却又使用了这个对象,比如用一个TStringList,而事先没有create,就直接用了第1个元素,就会报错。
      

  8.   

    试试在label1:=fields[4].asstring;(字段4有的情况)后面加上一句ADOQuery.Active:=True;
    我也不知道原理,不过我不加这句话也是和你一样的错误
      

  9.   

    用for循环要小心,注意上下限。
      

  10.   

    list index out of bounds(0)
    一般是由访问了没有创建的数组元素. 对于纯粹由数据库组件引起的上述提示,没有见过同意hotzhu(非洲白脸) 说的