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

Вниз

Навигация по НД   Найти похожие ветки 

 
RomanH ©   (2006-08-01 17:36) [0]

Мастера подскажите как сделать.Имеется таблица 1 400 000 записей.
Проиндексирована по первичному ключу.
Процедура Locate("tovar_id",10000,[]); работает очень медленно.
Может существуют другие методы навигации по НД
(НД -IBDataSet)


 
StriderMan ©   (2006-08-01 17:39) [1]

Locate по такой огромной таблице это ужасно.


> (НД -IBDataSet)

переделать на IBQuery и делать все запросом


 
Ega23 ©   (2006-08-01 19:07) [2]

Вот. Начинается. А зачем волочь ВСЕ 1400000 записей на клиент? Неужели нельзя отсортировать на стороне сервера?


 
Desdechado ©   (2006-08-01 19:14) [3]

> отсортировать на стороне сервера
Наверно, отобрать/выбрать.
SELECT * FROM tabl WHERE id=100
это вместо твоего Locate


 
RomanH ©   (2006-08-04 10:53) [4]

Мастера, поясню задачу.(Ни как не могу сообразить как SQL использовать в данном случае.):
Имеется таблица Category(Категория товара) и таблица TTovar(1 400 000 записей)
Category(IBDataSet(select * from category))-отображается в KADaoDBTreeView.
Tovar(IBQuery (select * from tovar where tovar_category_id=:category_id))-
отображается DBGride.
Так вот в обработчике события Category.AfterScroll я обновляю Tovar.
Где выбираются товары выбранной категории.То есть колличество записей уменьшается.
Задача  В Edit1 вводим номер производителя товара.Нажимаем Button.
После чего в том же DBGrid"e курсор должен передвинуться на найденную или похожую запись и отобразить остальные записи.


 
Ega23 ©   (2006-08-04 11:06) [5]


> Так вот в обработчике события Category.AfterScroll я обновляю
> Tovar.


Зачем? Про Master-Detail никогда не слышал?

Вообще-то странно предположить такой реестр товаров...
Что это, если не секрет?


 
RomanH ©   (2006-08-04 11:20) [6]


> Ega23 ©

Это не секрет.Справочник по автомобильным зап.частям  и комплектующим.
По этому когда мы выбираем Масло клиенту не должны высвечиваться стартеры и аммортизаторы.Подскажите пожайлусто как решить задачу(Вы мне не раз уже помогали).


 
Ega23 ©   (2006-08-04 11:31) [7]

Ну, в принципе, ты уже всё решил. Выбрал категорию - подзапрос в базу по товарам данной категории.
Просто категории надо более детально прорабатывать.


 
Sergey13 ©   (2006-08-04 13:14) [8]

> [4] RomanH ©   (04.08.06 10:53)

Добавь еще табличку "Производители", оформи ее на форме аналогично Категории, и в запрос к Товару добавь второй параметр (возможно с реакцией запроса на NULL в этом параметре).


 
RomanH ©   (2006-08-04 16:32) [9]


> Sergey13 ©

Да можно выбирать еще и по производителям товара.Записи клиенту уменьшаются.Но и по 100 000 записям Locate не уместен.Как мне производить навигацию по НД вводя код производителя.


 
Desdechado ©   (2006-08-04 16:37) [10]

> Но и по 100 000 записям Locate не уместен
Вводи еще дополнительные ограничения, которые могут послужить фильтром для уменьшения кол-ва показываемых позиций.
Например, ценовой диапазон, наличие на складе, срок гарантии, материал... Тебе виднее по предметной области.


 
Sergey13 ©   (2006-08-04 16:37) [11]

> [9] RomanH ©   (04.08.06 16:32)

Сделай категории более избирательными, тем более, что они у тебя деревянные. Неужели у тебя может быть 100000 разных карбюраторов?


 
Ega23 ©   (2006-08-04 16:42) [12]

Иерархическую структуру более детализируй. Оптимально - 20-100 записей.


 
Sergey13 ©   (2006-08-04 16:49) [13]

Кстати производителя вполне можно добавить к иерархии категорий последним уровнем например.


 
Sergey13 ©   (2006-08-04 16:56) [14]

Или вообще постороить несколько иерархой с разными начальными условиями и принципами почкования. Интересная задача, кстати.



Страницы: 1 вся ветка

Текущий архив: 2006.08.27;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.034 c
1-1152393567
leonidus
2006-07-09 01:19
2006.08.27
Как отоброзить в ListBox`е большой StringList?


9-1133327946
Da Stranger
2005-11-30 08:19
2006.08.27
Про стрельбу


5-1138281758
ronyn
2006-01-26 16:22
2006.08.27
Встроеное контекстное меню


15-1153955958
Dust
2006-07-27 03:19
2006.08.27
Редактор исходного кода с аутлайнингом


15-1154539521
matt
2006-08-02 21:25
2006.08.27
День пророка Ильи