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

Вниз

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

Наверх




Память: 0.48 MB
Время: 0.047 c
6-1074108780
Looo
2004-01-14 22:33
2004.03.28
Загрузить Delphi-приложение через Web-страницу


4-1074053732
Sirus
2004-01-14 07:15
2004.03.28
Как из DLL отослать сообщение вызывающему приложению??


6-1074355229
afunix
2004-01-17 19:00
2004.03.28
Как перехватить входящие/исходящие пакеты


4-1074244533
_hunter_
2004-01-16 12:15
2004.03.28
Изменение размера окна


1-1078998661
pasha_golub
2004-03-11 12:51
2004.03.28
OnMouseLeave