Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
8-1068984456
Gaus
2003-11-16 15:07
2004.03.28
MediaPlayer


14-1077378846
BlackBaracuda
2004-02-21 18:54
2004.03.28
MP3 и HOtKEy


8-1068627723
claus
2003-11-12 12:02
2004.03.28
рисование линий на Canvas-e любой формы, задаваемые шаблоном


1-1078919810
Ш-К
2004-03-10 14:56
2004.03.28
Bin to XML


3-1077872847
LAndreyV
2004-02-27 12:07
2004.03.28
Копирование из одной таблицы в другую





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский