Главная страница
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.232 c
1-1078853788
DelphiN!
2004-03-09 20:36
2004.03.28
CreateMappingFile


1-1078829710
zendor
2004-03-09 13:55
2004.03.28
Debugging in Delphi8


1-1079016555
1
2004-03-11 17:49
2004.03.28
Замена курсора


1-1078921135
fatal
2004-03-10 15:18
2004.03.28
Как лучше организовать выбор?


14-1077768297
NOD
2004-02-26 07:04
2004.03.28
Уничтожитель!