Query1.Close;
       Query1.sql.clear;
       Query1.SQL.Add('select G1,G2,G3,G6,G7,G8,G18,G19,G9,G10,G11,G12,G16,G17 from Mgrp_Cut.db where cutmod="A-158"');
       Query1.Open();
       Query1.First();
          //I:=0;
       for I:=0 to  13 do
         begin
         TGrpArray[I]:=Query1.Params[I].AsFloat;//!Error:List index out of
                                                //bounds(0)
         end;查出来只有1笔记录,但有14个字段。想把这14个字段的值赋给数组,不过这样好像是取不到值的。

解决方案 »

  1.   

    just try
    TGrpArray[I]:=Query1.Fields[I].AsFloat
      

  2.   

    TGrpArray[I]:=Query1.Fields[I].AsFloat;//!Error:List index out of
                                                    //bounds(0)
      

  3.   

    TGrpArray[I]:=Query1.Params[I].AsFloat;//!Error:List index out of
                                                    //bounds(0)
    Params属性是动态SQL语句使用时的参数,因为你的SQL语句里没有参数
    所以Params[]的个数应该是0,所以数组下标会越界。
    正确的用法是
    TGrpArray[I]:=Query1.Fields.Fields[6].AsFloat;
    另外觉得你的语句很怪异,不知道是干什么的?
      

  4.   

    应该是这样的:
    Query1.Close;
           Query1.sql.clear;
           Query1.SQL.Add('select G1,G2,G3,G6,G7,G8,G18,G19,G9,G10,G11,G12,G16,G17 from Mgrp_Cut.db where cutmod="A-158"');
           Query1.Open();
           Query1.First();
           for I:=0 to  13 do
             begin
             TGrpArray[I]:=Query1.Fields[i].AsFloat;
             end;
      

  5.   

    Sorry
    TGrpArray[I]:=Query1.Fields.Fields[6].AsFloat;
    因该是
    TGrpArray[I]:=Query1.Fields.Fields[I].AsFloat;
      

  6.   

    Params[i]是用于参数的
    TGrpArray[I]:=Query1.Fields[I].AsFloat