У меня есть DBGrid
и используйте его для получения данных в Array
. Но как только я нажимаю кнопку для выполнения этой процедуры, я получаю ошибку StackOverFlow? Вот код, который я использую:Ошибка StackOverFlow
iRy := 0;
iCol := DBGrid.Columns.Count;
sTest := DBGrid.Columns[0].Field.AsString;
While sTest <> '' do
begin
for k := 1 to iCol do
begin
arrData[iRy+1,iCol] := DBGrid.Columns[iCol].Field.AsString;
end;
Inc(iRy);
DBGrid.DataSource.DataSet.Next;
sToets := DBGrid.Columns[0].Field.AsString;
end;
Я использую Delphi 7.
не подходит к ошибке StackOverflow (возможно, SideEffect недействительных доступа здесь arrData [Иры + 1, iCol] или здесь DBGrid.Columns [iCol].), но и динамические столбцы Массивы Zerobased (для к: = 0 до iCol-1 do). Условие 'Not Dataset.EOF' отсутствует в то время как – bummi
sToets: = DBGrid.Columns [0] .Field.AsString ;, вы хотели ** sTest **: = DBGrid.Columns [0] .Field.AsString ;, ваш цикл перейдет в цикл до бесконечности или до тех пор, пока вы не заполните весь стек (это произойдет в первую очередь) – ComputerSaysNo
Можете ли вы исправить свою опечатку и посмотреть, есть ли у вас такая же ошибка –