Текущий архив: 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.48 MB
Время: 0.034 c