![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка из-за индекса [D5, dBase, FoxPro]
Oleg © (2003-06-18 17:39:00)посоветуйте, граждане! вот такой код отрабатывается в лет, но стоит лишь включить индекс, происходит зацикливание - в файл выводится постоянно последняя строка...
if SaveDialog1.Execute then begin
AssignFile(FP, SaveDialog1.FileName);
try
Rewrite(FP);
with Table2 do try
//IndexName:="FIO";
DisableControls;
First;
WHILE NOT EOF DO BEGIN
s_nom:=Fields[5].AsString;
L1:="";
L3:="";
L1:=Fields[0].AsString+"*************"+Fields[5].Asstring;
WriteLn(FP, L1);
WHILE Fields[5].AsString=s_nom DO begin
L3:=Table2.Fields[3].AsString+" / "+ Table2.Fields[4].AsString;
WriteLn(FP, L3);
next;
END;
Writeln(FP, "-------------------------");
end;
finally
EnableControls;
end;
CloseFile(FP);
except
on EInOutError do
MessageDlg("Writing error.", mtError, [mbOk], 0);
end;
end;
как же лечить-то
Oleg (2003-06-18 18:20:00) [1]ok, thanks!
SaS13 (2003-06-18 18:17:00) [2]индекс сортирует данные таким образом что условие Fields[5].AsString=s_nomвсегда верно, и происходит зацикливание
сделай проверку
if Eof then Break;
Соловьев (2003-06-18 17:49:00) [3]а зачем там цыкл?
Oleg (2003-06-18 17:47:00) [4]это вывод всех записей, относящихся к Fields[5] - фамилия
Соловьев (2003-06-18 17:43:00) [5]
> WHILE Fields[5].AsString=s_nom DO begin
> L3:=Table2.Fields[3].AsString+" / "+ Table2.Fields[4].AsString;
> WriteLn(FP, L3);
> next;
> END;
а что это еще такое?