Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.08;
Скачать: CL | DM;

Вниз

Как в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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.017 c
3-24319
Tahion2
2003-08-18 11:19
2003.09.08
Как в DBGridEh (EhLib) нарисовать в ячейке картинку?


1-24422
Андерсон
2003-08-26 09:16
2003.09.08
Проблема с Edit. Как спрятать курсор в его окне.


1-24470
Ghost
2003-08-27 08:15
2003.09.08
Не получаеться отловить сообщение о выключении windows


3-24389
Patrick
2003-08-14 10:29
2003.09.08
Использование TDBF


4-24748
Coban
2003-07-06 12:30
2003.09.08
w9x аналог GetUserProfileDirectory