我有一个使用 Zeoslib 6.6.6 和 Sqlite3 的 Delphi 7 项目。在表单上,我有一个 Zquery 从示例数据库表中选择所有内容以及一堆计算字段(TFloatField;TCurrencyField)。查询的 OnCalcFields 事件运行良好,所有字段值均已设置。但是,当我尝试遍历数据集时,我始终得到一个“列表索引超出范围(62893)”异常,尽管我完全在字段计数限制内(第一个计算字段约为 14)。
片段:gd 是 TStringGrid,ZQuery4 是 TZQuery
while not ZQuery4.Eof do
begin
row := row + 1;
gd.Cells[0, row] := IntToStr(gd.Row);
gd.Cells[1, row] := ZQuery4pid.Value; //Known column
gd.Cells[2, row] := FormatFloat('0.00', ZQuery4area.Value); //known column
for i := 3 to ZQuery4.FieldCount - 1 do
begin
field := Zquery4.Fields[i]; //crashes here when accessing the first calculated field.
if field.IsNull
then gd.Cells[i, row] := ''
else gd.Cells[i, row] := field.AsString;
end;
end;
奇怪的是,如果我将 DBGrid 连接到查询,它工作正常。有任何想法吗?