Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.04.04;
Скачать: [xml.tar.bz2];

Вниз

TQuery.Filter   Найти похожие ветки 

 
koks   (2002-03-04 17:51) [0]

Filter: string.
В данное свойство может вставляться выражения типо FieldName = 1 и пр...

Вопрос: насколько сложным может быть условие, передаваемое в Filter.

1. Потянет ли оно конструкцию типа:
((F1 = X1) and (F2 = Y1) and (F3 = Z1)
or (F1 = X2) and (F2 = Y2) and (F3 = Z2)
or (F1 = X3) and (F2 = Y3) and (F3 = Z3)
or (F1 = X4) and (F2 = Y4) and (F3 = Z4)
or (F1 = X5) and (F2 = Y5) and (F3 = Z5)
or (F1 = X6) and (F2 = Y6) and (F3 = Z6)
...
or (F1 = XN) and (F2 = YN) and (F3 = ZN))
где N - примерно 25...

2. Потянет ли конструкцию:
((F1 IN (X, Y, Z) AND F2 IN (K, L, M))
OR F1 in (X1, Y1, Z1) AND F2 IN(K1, L1, M1))

Хочу Where-инструкцию SQL преобразовать в фильтр.
Переписывать программу под использование OnFilterRecord очень долго...


 
Val   (2002-03-04 17:57) [1]

простите, но зачем переделывать where в фильтр???


 
Anatoly Podgoretsky   (2002-03-04 23:24) [2]

Насчет потянет ли, сил наверно не хватает проверить, надо просить других, попробуй поспать, отдохнуть.


 
Фэ   (2002-03-04 23:29) [3]

А в чем, по большому счету, разница между фильтром и запросом ?
Если отвлечься от технологий и рассматривать Вас как потребителя результата - то никакой.
Пользуйтесь, чем душенька пожелает.
Ах у Вас то ли фокс, то ли дубейзе ?
Вот они-то больше на фильтры расчитаны.


 
Reindeer Moss Eater   (2002-03-05 08:48) [4]

А такая вот разница
TQuery + Filter = обработка на клиенте
TTable + Filter = обработка на сервере
TQuery + Where = обработка на сервере


 
koks   (2002-03-05 09:56) [5]

2APodgoretskiy...
Ваше ехидство панет гнилью... Между прочим - моя профессия (и специальность) отнюдь не связана с программированием. Просто мне волей не волей приходится этим заниматься потому, что наш "Многоуважаемый" IT-отдел не в состоянии (ввиду отсутсвия соответствующего образования и мозгов) удовлетворить запросы маркетингового отдела в части ПО. Они мне, кстати, тоже говорят что-то подобное тому, что высказали ВЫ... очень похожее.. А сами из FoxPro 2.5 не могут вылезти. Так что спасибо, что напомнили что я занимаюсь не своим делом... впрочем - я это и сам знаю... и других дел тоже полно, спать некогда.

2VAL и др.
Я не собираюсь передавать Where.. Я собираюсь передавать туда Условие (которое идет после Where). А нужно это вот зачем - у меня довольно сложная форма, которая одновременно отображает данные и позволяет задать условие на выборку. (Условия многовложенные - см. выше). Там даже есть что-то похожее на бланк запроса в Access.
Если задавать условие - она генерит SQL запрос... делает выборку в отдельный массив - и для этого массива открывает такую же форму....
Задача - сделать так, чтобы данные, удовлетворяющие условиям SQL Запроса отображались тут-же, в этой же форме, т.е. условияе SQL накладывалось (фильтром).
Если TQuery.Filter потянет такое условие - хорошо - сделать можно быстро, если не потянет - плохо - делать ОЧЕНЬ долго...
Господа мастера! дайте совет



 
Johnmen   (2002-03-05 10:14) [6]

Filter даже с 1000 условий потянет, нет вопросов, но какая будет производительность - надо смотреть по месту...


 
Val   (2002-03-05 10:38) [7]

>koks © (05.03.02 09:56)
я спрашивал не про передачу where, а про переделывание SQL-запроса в фильтр, поскольку никто не мешает вам, думаю, генерировать любой запрос по вашим данним динамически и отображать его результат в какой угодно форме, хоть сразу в нескольких..
По поводу "потянет ли конструкцию.." - зря вы так с Подгорецким, поскольку он, справедливо, по-моему, заметил, что раз у вас есть конструкция, почему бы вам не попробовать ее в фильтре самому? И икаких намеков на то, что вы занимаетесь не своим делом я в упор не вижу, извините.


 
koks   (2002-03-05 12:41) [8]

Спасибо за отклики!
2Val - вся феня в следующем: у меня используются SQL-запросы. (т.е. реляцилнный доступ) - через WHERE - инструкцию. А индексирование (для DBase-овских таблиц по крайней мере) подразумевает навигационный доступ..
Мой пользователь хочет и то и то одновременно...
У меня cозрела мысль: передать Where -конструкцию в TQuery.Filter (отрубив предварительно Where) - И ВСЕ! Но так как здесь два принципиально разных доступа к данным, у меня возникло сомнение... Вот я и решил проконсультироваться у знатоков...
В ответ получил предложение поспать..... любой, по-моему разозлиться. Я, конечно, мог ко всему прийти сам опытным путем - только время уймища. Успел только схватить по верхам.
А все что мне нужно было - это ответ Johnmen"a За что ему ОГРОМНОЕ СПАСИБО!



 
Anatoly Podgoretsky   (2002-03-05 20:26) [9]

Reindeer Moss Eater (05.03.02 08:48)
Расскажи где ты сервер нашел?

Reindeer Moss Eater (05.03.02 08:48)
Это не ехидство, а просто любовь к заляве или подобное, самому не написать этот текст, надо что бы кто то другой сделал. Был бы вопрос технический, а то простой набор текста и запуск программы на проверку, никакого ноу-хау. И твои коллеги высказали вполне справедливо, а то что они работают с FoxPro 2.5, то возможно этому есть причины кроме профессональных знаний.

Вот по вопросу под номером 2 другое дело, такой тип фильтра не поддерживается.

koks © (05.03.02 12:41)
Я то же разозлился, потому что другой интерпритации данный вопрос не подразумевает.


 
Reindeer Moss Eater   (2002-03-05 20:40) [10]

>Anatoly Podgoretsky
Ну не заметил я в вопросе что речь про dBase и FoxPro.
А второй абзац мне за что?


 
Anatoly Podgoretsky   (2002-03-06 08:09) [11]

Извини это уже я не заметил, что влепил заголовок, естественно это я Коксу отвечал, так как он не понял суть того что я ему написал и по ошибке влепил не ту ссылку :-(


 
koks   (2002-03-06 09:31) [12]

Ну все ! Сколько все воды налили - а я так и не понял можно ли мои условия в фильтр напрямую ставить...
APodgoretski! Все из-за вас...
Я ведь понимаю, что можно попробовать самому... Но ведь я задал простой вопрос - МОЖНО ИЛИ НЕЛЬЗЯ. На него ответить по-моему очень просто.... если знаешь... Если не знаешь, конечно, сложне..
У меня наверное причины были чтобы сначала спросить а потом реализовывать...(Наверное такие же, как у нашего IT оставаться - на FoxPro).
ТАК ВСЕ - ТАКИ МОЖНО ИЛИ НЕЛЬЗЯ!
Заранее спасибо..


 
Shirson   (2002-03-06 13:06) [13]

Первую конструкцию фильтр потянет, вторую - нет. Оператор in не входит в круг его понятий.

Посмотри в хелпе. TBDEDataSet -> Properties -> Filter -> SettingTheFilterProperty


 
koks   (2002-03-06 15:23) [14]

СПАСИБО!


 
Val   (2002-03-06 15:36) [15]

Не хочется быть занудой, но сравним:

koks © (06.03.02 09:31)
Ну все ! Сколько все воды налили - а я так и не понял можно ли мои условия в фильтр напрямую ставить...
APodgoretski! Все из-за вас...

и
Anatoly Podgoretsky © (05.03.02 20:26)
..
Вот по вопросу под номером 2 другое дело, такой тип фильтра не поддерживается.
..

Нету в жизни справедливости :))



 
Malder   (2002-03-06 16:01) [16]

Хех. Смешную вы дискуссию развели.
У меня нет сейчас под рукой Delphi и я не могу написать код, выполнить и сказать результат. Так что не знаю как для этого случая, а вот вообще, при большом числе параметров Filter выдает ошибку, и число этих параметров не так уж велико... так что советую не злоупотреблять этим и искать альтернативные методы фильтрации. Да и вообще когда фильтры такие сложные - это обычно говорит о неправильной архитектуре базы.


 
koks   (2002-03-06 17:34) [17]

ВСЕМ СПАСИБО! ВОЙНА ОКОНЧЕНА - МОЖНО ИДТИ ПО ДОМАМ...


 
Anatoly Podgoretsky   (2002-03-06 20:32) [18]

koks © (06.03.02 09:31)
Тебе уже ответили, что можно, но только первое и не я один, и предложили вставить и проверить, а не заставлять это делать нас (это уже я, по тому что с моей точки зрения это или наглость или лень). В принчипе, что бы точно ответить надо знать, что такое Xn, Yn, Zn, а это только ты знаешь.

Если тебя что то другое интереусет, то ты не объясняешь и не указываешь причины по которым ты не можешь сам написать это в фильтре. Может тебя вообще интересует есть ли ограничения на длину выражения фильтра, конечно есть, но ты про это не справшиваешь.

Вместо того что бы спокояно разобрать и объяснить причины, ты выражаешь просто обиду, вот я и говорю _не понял_


 
koks   (2002-03-12 11:04) [19]

APodgorodetski...
Про свою обиду я, конечно, согласен...
Но вот разве трудно было Ваш последний ответ, который содержит конструктивный подход, поместить в самое начало... а предложение поспать - в конец. По-моему, вы тоже были в неважном настроении и обижаться есть за что.

Насчет что такое Xn, Yn, Zn Вы абсолютно правы....
Ограничение на длину меня не интересовало т.к. я знал что ее не достигну.

А вообще, претензии по поводу литературного построения вопроса не принимаются. Уверяю Вас, не из лени... Из лени - это наш IT мне говорит, что "попробуй сам - нам некогда" (налицо отказ от выполнения своих прямых обязанностей). Вот я и пробую как могу, во внеурочное время, совмещая с "основным производственным процессом", как говорили в совковые времена.
Здесь много похожих вопросов задается. Если у вас "Другой Уровень" - зачем Вы сюда ходите. Я лично не стестняясь говорю, что хожу сюда ради ЭКОНОМИИ ВРЕМЕНИ. Не понимаю почему Вы это ставите в претензию. И ни кого я ничего делать не заставлял - я задал вопрос можно или нельзя...
EOF





 
koks   (2002-03-12 11:13) [20]

APodgorodetski...
Про свою обиду я, конечно, согласен...
Но вот разве трудно было Ваш последний ответ, который содержит конструктивный подход, поместить в самое начало... а предложение поспать - в конец. По-моему, вы тоже были в неважном настроении и обижаться есть за что.

Насчет что такое Xn, Yn, Zn Вы абсолютно правы....
Ограничение на длину меня не интересовало т.к. я знал что ее не достигну.

А вообще, претензии по поводу литературного построения вопроса не принимаются. Уверяю Вас, не из лени я... Из лени - это наш IT мне говорит, что "попробуй сам - нам некогда" (налицо отказ от выполнения своих прямых обязанностей). Вот я и пробую как могу, во внеурочное время, совмещая с "основным производственным процессом", как говорили в совковые времена.
Здесь много похожих вопросов задается. Если у вас "Другой Уровень" - зачем Вы сюда ходите. Я лично не стестняясь говорю, что хожу сюда ради ЭКОНОМИИ ВРЕМЕНИ. Не понимаю почему Вы это ставите в претензию. И ни кого я ничего делать не заставлял - я задал вопрос можно или нельзя...
EOF





 
Anatoly Podgoretsky   (2002-03-12 23:20) [21]

Очень просто, надо было набрать выражение и попробовать, а не расчитывать, что это за тебя сделает другой, тем более что для этого надо создавать специальную тестовую базу, а про более поздний вопрос, это уже после уточнений.
Насчет твоих IT я не могу обсуждать, кто из вас прав, не знаю я ващей специфики, но могу сказать, что тоже в некоторых случаях приходится так отвечать, зависит от нагрузки, в чии обящанности входит, от самого вопроса и других причин. Но всегда прекрасно находим общий язык, а вот нахлебников не жалую, они должны сами делать свою часть работы, но на помощь всегда могут расчитывать.


 
sniknik   (2002-03-12 23:42) [22]

Скандальный тип. Я бы встал на сторону IT. Если бы пришлось выбирать. Только представлю как он им ставит задачу и что отвечает если не понял. А святая уверенность что он разбирается в задаче лутше специалистов, чего стоит!



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2002.04.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.009 c
7-9665
Schummi
2002-01-06 09:27
2002.04.04
*.reg


1-9487
-=GaLaN=-
2002-03-23 19:19
2002.04.04
Потеря фокуса формой


1-9459
Swinger
2002-03-24 00:26
2002.04.04
ICQ


3-9392
zzz
2002-03-12 13:18
2002.04.04
TAction and Shortcuts


1-9545
Лана Розанова
2002-03-24 09:35
2002.04.04
Drag&Drop





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский