|
Тема
|
Eof на TClientDataSet
|
|
Автор |
VladoVasilev (непознат
) |
Публикувано | 19.09.04 15:42 |
|
Искам да обходя един ClientDataSet, като редактирам всеки запис. Правя го по следния начин:
while (not dsFinishOrder.DataSet.Eof) do
begin
dsFinishOrder.DataSet.Edit;
dsFinishOrder.DataSet.FieldByName('QUANTITY').asInteger := 0;
dsFinishOrder.DataSet.Post;
dsFinishOrder.DataSet.Next;
end;
където dsFinishOrder е DataSource към съответния DataSet. Обаче условието никога не става true. Получава се така, че обхождам целия DataSet, но когато стигна до последния запис, си стоя там, явно dsFinishOrder.DataSet.Eof си връща false. Някой имал ли е подобен проблем? Това е на Delphi5...
И още, има ли някакви updates на DCOM- ili Midas, за Delphi5? Не съм хич в час, но за Ado-components има един Update2_for_ADO...
| |
|
Ако вместо while (not dsFinishOrder.DataSet.Eof) използвам
for i := 1 to dsFinishOrder.DataSet.RecordCount или пък
while(1) do
begin
//source...
if dsFinishOrder.DataSet.RecNo=dsFinishOrder.DataSet.RecordCount then break;
end;
няма проблеми..Просто съм любопитен, защо Eof-a не работи...
| |
|
Това дето го написах в допулнението с repeat...until-a, не изпълнява тялото на цикъла за последния запис (логично :) ).
| |
|
|
|
|