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个字段的值赋给数组,不过这样好像是取不到值的。
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个字段的值赋给数组,不过这样好像是取不到值的。
TGrpArray[I]:=Query1.Fields[I].AsFloat
//bounds(0)
//bounds(0)
Params属性是动态SQL语句使用时的参数,因为你的SQL语句里没有参数
所以Params[]的个数应该是0,所以数组下标会越界。
正确的用法是
TGrpArray[I]:=Query1.Fields.Fields[6].AsFloat;
另外觉得你的语句很怪异,不知道是干什么的?
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;
TGrpArray[I]:=Query1.Fields.Fields[6].AsFloat;
因该是
TGrpArray[I]:=Query1.Fields.Fields[I].AsFloat;
TGrpArray[I]:=Query1.Fields[I].AsFloat