Форум: "Базы";
Текущий архив: 2003.09.08;
Скачать: [xml.tar.bz2];
ВнизКак вTTable перейти к записи с оределенным номером??? Найти похожие ветки
← →
Nikkkkk (2003-08-15 09:44) [0]Уважаемые мастера,Как при помощи компонента TTable перейти к записи с заданным номером??? Для чего мне это нужно? Мне необходимо найти запись по дате, пробовал использовать Locate, работает медленно. Хочу попробовать организовать поиск по принципу угадывания числа..
Спасибо всем ответившим.
← →
Nikolay M. (2003-08-15 09:46) [1]
> пробовал использовать Locate, работает медленно
Начиная с пятерки Locate не использует индексы. Засовывай имя поля в IndexFieldNames и ищи FindKey-ем.
← →
Виталя (2003-08-15 09:48) [2]Table.First;
for i:=1 to Nomer do Table.Next;
А вообще отсортируй по дате тогда Locate работать будет быстрей
← →
Nikkkkk (2003-08-15 09:57) [3]Индекс создавать нельзя, работаю в активных базах используемых в других программах...
← →
Mike Kouzmine (2003-08-15 10:23) [4]t.recno := x;
← →
VAleksey (2003-08-15 11:39) [5]
> Nikolay M. © (15.08.03 09:46)
Вот выдержка из хелпа в Delphi 5. Если вы имеете более надежный источник, то прошу указать.
Locate uses the fastest possible method to locate matching records. If the search fields in KeyFields are indexed and the index is compatible with the specified search options, Locate uses the index. Otherwise Locate creates a filter for the search.
Т.е. если Locate в каком - то частном случае не использует индекс, то это не значит, что он его вообще не использует.
← →
KPP (2003-08-15 13:23) [6]Ищу запись при помощи Locate без индексов - в таблице с 10000 записей работает практически незаметно
перед поиском отключи вычисляемые поля, сделай таблице
DisableControls; а после поиска EnableControls;
← →
Mike Kouzmine (2003-08-15 15:31) [7]Для перехода на номер записи никакие индексы не нужны. Работает простое присваивание св-ву recno номера нужной записи
← →
KPP (2003-08-15 15:46) [8]>Mike Kouzmine © (15.08.03 15:31) [7]
В вопрос звусит так:
"...Мне необходимо найти запись по дате, пробовал использовать Locate, работает медленно. ..."
как можно такое сделать "простым присваиванием св-ву recno номера нужной записи"?
← →
Mike Kouzmine (2003-08-15 16:11) [9]Вопрос звучит так:
Уважаемые мастера,Как при помощи компонента TTable перейти к записи с заданным номером???
Вопросы есть? А для чего это ему надо, это следующий вопрос.
← →
sniknik (2003-08-15 16:32) [10]Nikkkkk (15.08.03 09:57) [3]
> Индекс создавать нельзя, работаю в активных базах используемых в других программах...
переходи на ADO подходит как нельзя лутше. после чтения в локальный рекордсет наложение индекса (проперти Sort), пройдет практически незаметно для оригинальной таблицы...
а уж по индексированному полю поиск, "быстрее не бывает".
← →
MsGuns (2003-08-15 17:49) [11]А что, просто запросом (Select ... where ...) не позволяет политика партии ?
← →
MsGuns (2003-08-15 17:51) [12]Пардон ! С последующим FindKey по найденному в запросе идентификатору.
ЗЫ. Отвлекли ;)
← →
Nikolay M. (2003-08-15 18:06) [13]
> VAleksey © (15.08.03 11:39) [5]
> Вот выдержка из хелпа в Delphi 5. Если вы имеете более надежный
> источник, то прошу указать.
Пардон, я говорил про ClientDataSet.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.09.08;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.01 c