Форум: "Базы";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];
ВнизOr в Locate Найти похожие ветки
← →
TransparentGhost (2004-02-25 17:16) [0]В TQuery было свойство Filter в котором можно было задать "(Id_Prf=1) or (Id_Prf=3)" затем при помощи FindFirst i FindNext найти подходящие записи.
В ТpFIBDataSet такого свойства нет. Можно ли как-то ето реализовать через Locate? если нет, то какие возможные варианты? но при условии что набор записей закачен один раз.
← →
Anatoly Podgoretsky © (2004-02-25 17:19) [1]Зато есть WHERE которое и является фильтром для SQL вне зависимости существует локальная фильтрация или нет.
← →
TransparentGhost (2004-02-25 17:30) [2]Это я знаю.
Пример такой :
Есть 2 таблицы Т1 и Т2. Для каждой Т1 есть много записей в Т2.
Необходимо обработать все записи в Т1 и для каждой из них в Т2.
Быстрее работает если загрузить все записи из Т1 и все записи из Т2 для всех Т1, чем для каждой Т1 подгружать соответствующие записи.
Это только пример. В самой задаче всё несколько сложнее и объёмнее.
Мне интересны все идеи, а потом выберу лучшие :з)
← →
Vlad © (2004-02-25 17:36) [3]
> TransparentGhost (25.02.04 17:30) [2]
>Мне интересны все идеи, а потом выберу лучшие :з)
Боюсь что ваша идея (c Locate) чуть ли ни наихудшая в условиях данной задачи.
про master-detail что нибудь слышали ?
← →
TransparentGhost (2004-02-25 17:43) [4]мне просто стало интересно, можно ли так извратиться с Locate.
Я знаком и с SQL и c master-detail, а с Locate особо не разбирался. Возникли мысли : а вдруг? :з)
← →
Соловьев © (2004-02-25 17:46) [5]А смысл?
Если используешь FIBPlus , то там есть удобные настройки для связи мастера и детайла.
TFIBCustomDataSet.DetailConditions
← →
Vlad © (2004-02-25 17:48) [6]
> TransparentGhost (25.02.04 17:43) [4]
Извратиться всегда можно. Есть метод OnFilterRecord, там сколько угодно OR"ов пиши. Но только зачем, если есть стандартные и вполне надежные методы
← →
TransparentGhost (2004-02-25 17:58) [7]Фильтрация проходит медленней чем просто перемещение по записям.
На TQuery пробовал разные варианты : master-detail, filter:=true, Select * from... where... и т.д.
один раз Select * from... и потом через FindFirst/FindNext - самый быстрый, хоть и надо повозиться.
← →
Vlad © (2004-02-25 18:03) [8]
> TransparentGhost (25.02.04 17:58) [7]
Не понимаю все-таки какое преимущество у такого способа перед master-detail ? Неужто быстрее ?
← →
TransparentGhost (2004-02-25 18:09) [9]На TQuery было быстрее, на FIB не проверял ещё. только недавно на FIB перешёл, но старые исходники врят ли буду переписывать.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.031 c