我试图使用数据库(Access)中的数据填充数组,但在运行以下代码时:
with dmSUPREMEDATA do
begin
iNumberofRecords := ADOComplete.RecordCount;
ADOComplete.First;
SetLength(ArrSummary, iNumberofRecords, 3);
for i := 0 to iNumberofRecords do
begin
ArrSummary[i, 0] := ADOComplete['Names'];
ArrSummary[i, 1] := ADOComplete['Surnames'];
ArrSummary[i, 2] := ADOComplete['Average'];
ADOComplete.Next;
end;
end;
这是弹出的错误:
有没有更好的方法来填充数组?这是用Delphi编写的
2条答案
按热度按时间h9a6wy2h1#
您的循环超出了数组的界限。
数组的第一维具有
iNumberofRecords
数量的元素,因此它具有有效的索引0..iNumberofRecords-1
。for
循环使用的索引是INCLUDE,因此您将遍历索引0..iNumberofRecords
,这意味着循环的最终迭代将访问无效的索引。您需要从循环计数器中减去
-1
,例如:或者:
h79rfbju2#
您可以尝试创建两个for循环。就像一个细节和子细节,一个用于第一个数组,另一个用于第二个数组。