<!--QuoteBegin-Дрон+29:06:2007, 16:08 -->
<span class="vbquote">(Дрон @ 29:06:2007, 16:08 )</span><!--QuoteEBegin-->For i:=0 to Table1.RecordCount-1 do
begin
Table1.First;
Table1.Fields.Fields[гомер столбца].Text:='что ищем';
end;
[snapback]70904" rel="nofollow" target="_blank[/snapback]
[/quote]
Ага, хороший вариант.
Предположим, RecordCount = 10000
Значит 10000 раз будем возвращаться к первой записи :blink:
1. Нужно First поставить до цикла
2. После
Table1.Fields.Fields[гомер столбца].Text:='что ищем' осуществлять переход на следующую запись, иначе будет 10000 раз сравнивать одну и ту же запись
3. Fields[гомер столбца].Text - не существует. Есть Fields[гомер столбца].AsString;
4. Вместо Fields[гомер столбца] лучше использовать FieldByName, иначе если изменим структуру БД и это поле станет не третьим а четвертым, то придется сами знаете что делать
5. Если запись найдена - прервать цикл, например командой Break, иначе будет шерстить дальше
6. У Table нет ни First, ни RecordCount, нужно использовать Table.DataSource.DataSet
7. Лучше использовать такое
Код:
With Table.DataSource.DataSet do
begin
First; // перейдем к первой записи
While not EOF do begin // пока не достигнут конец базы
if FieldByName(ИмяПоля) = ИскомоеЗначение
then begin
ShowMessage('Ура, нашли !'); // выведем сообщение о том что нашли нужное
Break; // прервем цикл чтоб не гоняться по базе зря
end else Next; // а не нашли - так перейдем к следующей
end;
end;
8. А еще лучше - использовать выше упомянутые Locate (Lookup), или запрос SQL