Показать сообщение отдельно
Старый 03.03.2005, 11:33   #10  
Shoorik is offline
Shoorik
Участник
 
19 / 10 (1) +
Регистрация: 03.03.2005
Цитата:
Сообщение от Likefire
Цикл в данном случае очень непродуктивно, так как записей в таблице может быть очень много и пробегаться по каждой записи, чтобы найти последний элемент таблицы - мягко говоря неумно, потому что существует такой простой метод как COUNT.
RESET(Customer); //сбрасываем все фильтры = все записи таблицы
IsCount := Customer.COUNT;

Сustomer.SETRANGE("No.", No1, No2); //ставим фильтр = избранные записи
IsCount := Customer.COUNT;

Вот и вся любовь...
Цикл в данном случае очень непродуктивно, так как записей в таблице может быть очень много и пробегаться по каждой записи, чтобы найти последний элемент таблицы - мягко говоря неумно, потому что существует такой простой метод как COUNT.

Не понял идеи. При чём здесь COUNT?
Искать последнюю запись с помощью цикла - далеко не лучшая идея, конечно :-) Но вопрос был не об этом - человеку, как я понял, нужно изменить значение поля во всех записях. В этом деле COUNT точно не поможет, там без цикла не обойтись.
Для того, чтобы найти последнюю запись, на самом деле, существует такой простой метод как FIND('+')

В примере кода, приведённом Вами я опять-таки не увидел поиска поска записи.

RESET(Customer); //сбрасываем все фильтры = все записи таблицы
IsCount := Customer.COUNT;

Сustomer.SETRANGE("No.", No1, No2); //ставим фильтр = избранные записи
IsCount := Customer.COUNT;

Вы здесь дважды считаете количество записей. Первый раз - всего в такблице, второй - количество записей, удовлетворяющих фильтру. А где, собственно, поиск?