powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как без динамического сделать добавляемые пользователем критерии
15 сообщений из 15, страница 1 из 1
Как без динамического сделать добавляемые пользователем критерии
    #35934965
Hey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В системе должна иметься возможность пользователю добавлять набор критериев для фильтра. Например он может добавить критерий "Клиенты моложе 30 лет по которым принято положительное решение"
Этот критерий он потом сможет выбрать из списка критериев и должен получится запрос на подобие такого:

Код: plaintext
select * from Applications where dbo.ApplicantAge(ClientID) <  30  and Type = 'A'

Как следует сохранять такие критерии ?
...
Рейтинг: 0 / 0
Как без динамического сделать добавляемые пользователем критерии
    #35935507
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
heyВ системе должна иметься возможность пользователю добавлять набор критериев для фильтра. Например он может добавить критерий "Клиенты моложе 30 лет по которым принято положительное решение"
Этот критерий он потом сможет выбрать из списка критериев и должен получится запрос на подобие такого:

Код: plaintext
select * from Applications where dbo.ApplicantAge(ClientID) <  30  and Type = 'A'

Как следует сохранять такие критерии ?
что значит без динамического?
...
Рейтинг: 0 / 0
Как без динамического сделать добавляемые пользователем критерии
    #35935571
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nafчто значит без динамического?
Например у нас в Cache есть несколько вариантов использования sql-запроса... Например "статический" выглядит так:

Код: plaintext
&sql(SELECT ID FROM adm.Nast_Params WHERE  ID=:% 1  AND (%ID <> :%id OR :%id IS NULL))

А "динамический" так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
s sql="Select * From ver.Adhoc Order by Name"
s ors=##class(%ResultSet).%New("%DynamicQuery:SQL")
s ok=ors.Prepare(sql)
s ok=ors.Execute()
while ors.Next() {
	// любой код
}
d ors.Close()
k ors

В статическом можно менять только значения передаваемых переменных... А вот в динамическом можно формировать и сам текст sql-выражения...

Может нечто аналогичное и имелось ввиду.

hey , ты бы по подробнее написал про критерии... А то так пока только туману напустил...
...
Рейтинг: 0 / 0
Как без динамического сделать добавляемые пользователем критерии
    #35937590
Hey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
имеется ввиду динамический sql, в заголовке опечатка, сорри

Например, предположим есть таблица

Код: plaintext
table Applications (ID int, ClientName varchar( 100 ), Status char, Type char)

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

Код: plaintext
select * from Applications where ClientName = 'Михаил' and Status = 'A'

Теперь у него должна быть возможность выбрать данный критерий из комбобокса и нажав ОК он должен получить результат. Кроме того, к критерию могут быть добавлены доп. условия, например диапазон дат.
...
Рейтинг: 0 / 0
Как без динамического сделать добавляемые пользователем критерии
    #35937629
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hey , у нас это называется "поисковой системой". Пользователю в некоем диалоговом режиме предлогается создать некий, нужный ему запрос к БД... Его можно сохранить, изменять, настраивать выходную таблицу, печатать ее, записывать в файл.

Этот раздел про "Проектирование БД", каким боком это тут?
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
Как без динамического сделать добавляемые пользователем критерии
    #35937643
belugin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hey,

мне так кажется, чтобы критерии менялись нужно стобы SQL или то, что вместо него было динамическим. Просто по определению: динамический - то, что можно изменить.
...
Рейтинг: 0 / 0
Как без динамического сделать добавляемые пользователем критерии
    #35937648
Hey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А куда я этот вопрос еще постить-то должен )
Это не совсем генератор запросов к бд, пользователь о бд ни сном ни духом, ему будет предложено несколько вариантов параметров и операторов, из которых он составляет критерий.
Теперь все это надо как-то поумному сохранить в бд и потом использовать
...
Рейтинг: 0 / 0
Как без динамического сделать добавляемые пользователем критерии
    #35937655
Hey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
beluginhey,

мне так кажется, чтобы критерии менялись нужно стобы SQL или то, что вместо него было динамическим. Просто по определению: динамический - то, что можно изменить.
возможно,
просто это ведет к невозможности использования функций.
Может кто-то просто уже сталкивался с подобным
...
Рейтинг: 0 / 0
Как без динамического сделать добавляемые пользователем критерии
    #35938483
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
heyпросто это ведет к невозможности использования функций
Почему? "and getdate() between date1 and date2" что мешает родить? Или что имелось в виду?
...
Рейтинг: 0 / 0
Как без динамического сделать добавляемые пользователем критерии
    #35938957
Hey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Васкецов
Почему? "and getdate() between date1 and date2" что мешает родить? Или что имелось в виду?
имелось в виду:

Код: plaintext
where ClientName = 'Михаил' and Status = 'A'

т.е. произвольный параметр и оператор (and, <, > , !=, =, итп)
...
Рейтинг: 0 / 0
Как без динамического сделать добавляемые пользователем критерии
    #35938974
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
heyимелось в виду
Все равно не понял, ибо все равно будет попадалово на "= NULL" при фильтрации. Минимальная логика все равно должна быть. Да и функций в Вашем примере не вижу. Можете нормальный пример привести?
...
Рейтинг: 0 / 0
Как без динамического сделать добавляемые пользователем критерии
    #35939453
Hey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей ВаскецовВсе равно не понял, ибо все равно будет попадалово на "= NULL" при фильтрации. Минимальная логика все равно должна быть. Да и функций в Вашем примере не вижу. Можете нормальный пример привести?
честно говоря непонятно, чем пример не угодил. Null в качестве значения будет отсутствовать, но вообще-то даже его не проблема добавить, если понадобится - вводим оператор is и все.

Функцию хотел использовать для получения фильрованных значений наподобие

Код: plaintext
1.
2.
select * from dbo.GetCriteriaFilteredValues(criteriaName) a
join ...
where date between date1 and date2

однако из-за динамического sql функции отпадают.

Но по-сути вопрос все-таки не столько про динамический sql, сколько вообще как к этому подходить, может кто сталкивался, что-бы велосипед не изобретать
...
Рейтинг: 0 / 0
Как без динамического сделать добавляемые пользователем критерии
    #35940821
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я сделал свой велосипед на такую же тему.

Выражение WHERE хранится в виде дерева с узлами AND OR. Конечные листочки - фукции с операндами. Из этого генерится длинный WHERE который потом используется в программе.

Создается и редактируется сия конструкция в виде дерева с драг энд дроппом узлов и частей из одного места дерева в другое.

Новые функции можно добавлять ран тайм, для каждой задается число операндов и шаблон для отображения ее в SQL.
...
Рейтинг: 0 / 0
Как без динамического сделать добавляемые пользователем критерии
    #35941301
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
П-Л , это я и называл "поисковой ситемой"...
...
Рейтинг: 0 / 0
Как без динамического сделать добавляемые пользователем критерии
    #35942942
Stas Tristan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По этой теме есть продукты сторонних разработчиков:
Easy Query http://devtools.korzh.com/eq/
FilterControl From DevExpress
Это чтоб не париться с разработкой собственного решения - там уже все за вас решили
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как без динамического сделать добавляемые пользователем критерии
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]