![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как перейти на следующую запись? [D6]
shane54 © (2002-03-27 16:06:00)Вот такой код выдает только первую запись...
for i := 0 to Table.RecordCount -1 do
begin
for j := 0 to Table.FieldCount - 1 do
write(Table.Fields[j].DisplayText, " ");
writeln;
end;
Anatoly Podgoretsky (2002-03-27 23:23:00) [1]shane54 © (27.03.02 16:24)
Это кстати говорит, что не надо торопиться с вопросом, зачем замусоривать форум.
Digitman (2002-03-27 16:28:00) [2]1. Особенности реализации доступа к таблице с использованием индекса таковы, что при открытии таблицы (либо смене тек.индекса) св-во RecordCount будет <= 1. Чтобы получить актуальное значение RecordCount в тек.транзакции, нужно "сходить в конец" таблицы вызовом метода Last.
2. Даже если бы не было такой особенности и RecordCount в любой момент времени "показывало" действительное число записей в НД, переменная цикла i в приведенном тобой фрагменте нигде не используется, и по записям ты не перемещаешься вообще, так что цикл for j := 0 to будет все время работать в пределах тек.записи, той, на которой ты "стоишь" в момент старта цикла for i := 0 to
shane54 (2002-03-27 16:24:00) [3]Спасибо, правда я уже сам все решил...
Aleksandr (2002-03-27 16:19:00) [4]Ну, если Вам хочется непременно такой код, то надо делать так:
Table.First;
for i:=0 to Table.RecordCount-1 do begin
for j:=0 to Table.FieldCount-1 do
write(Table.Fields[j].DisplayText," ");
writeln;
Table.MoveBy(1)
end;
а вообще принято делать так:
Table.First;
while NOT Table.EOF do begin
for j:=0 to Table.FieldCount-1 do
write(Table.Fields[j].DisplayText," ");
writeln;
Table.Next
end