执行TDataSet的Next方法时访问冲突错误

Access violation error when executing TDataSet's Next method

当希望将指针移到下一条记录时,会显示一条错误消息:

Access violation at address 004070E2 in module 'main_p.exe'. Write of address 00000000

有什么办法解决这个问题吗?

var
  i: integer;
begin
  with dmData.dmEventInfo do
  begin
    tblEventinfo.Open;
    i := 0;
    while NOT tblEventinfo.Eof do
    begin
      arrNames[i] := tblEventinfo['bandname'];
      tblEventinfo.Next;
      i := i + 1;
    end;

  end;
end;

您没有显示 arrNames 数组的声明,但我认为问题出在 Length.

var
  i: integer;  arrNames : array of string;
begin
    SetLength(arrNames , tblEventinfo.RecordCount);
    i := 0;
    while NOT tblEventinfo.Eof do
    begin
      arrNames[i] := tblEventinfobandname.Value;
      tblEventinfo.Next;
      Inc(I);
    end;

  end;