Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Сложный фильтр
|
|||
|---|---|---|---|
|
#18+
Добрый день! Подскажите пожалуйста, как организовать сложный фильтр в ADO: Для компонента ADODataSet параметр Filter := ‘[ID] IN (SELECT [FROM_ID] FROM TVINFO.PAYMENTS WHERE FROMS='2' AND CONTRAGENT_ID=163)’ Когда я устанавливаю параметр Filtered := True Возникает ошибка ‘Arguments are of the wrong type, or out of acceptable range, or are in conflict with one another’ Возможно ли фильтрование в ADO через подзапрос? Как решить данную проблему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2003, 17:03 |
|
||
|
Сложный фильтр
|
|||
|---|---|---|---|
|
#18+
>Возможно ли фильтрование в ADO через подзапрос? Тыж сам себе ответил, через подзапрос, а запросы кто выполняет, правильно, сервер. Так вперед. Ну или строй строку IN (...) сам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2003, 17:07 |
|
||
|
Сложный фильтр
|
|||
|---|---|---|---|
|
#18+
Хорошо, ADODataSet имеет сложный запрос (условие WHERE), далее пользователь хочет отфильтровать записи (увидеть в гриде) только по определенному критерию. Если я изменю в ADODataSet параметр CommandText – добавлю туда дополнительное условие WHERE – сработает ( только тяжело складывать условия когда есть ключевое слове ORDER BY :( ), но когда пользователь решит отменить фильтр – надо восстанавливать исходное SQL выражение – логика программы сложная и хреновая – через фильтр было бы пороше (если это возможно). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2003, 17:15 |
|
||
|
Сложный фильтр
|
|||
|---|---|---|---|
|
#18+
Значит нужно простые фильтры использовать - для чего бы это на клиенте фильтровать по IN ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2003, 17:26 |
|
||
|
Сложный фильтр
|
|||
|---|---|---|---|
|
#18+
>логика программы сложная и хреновая В большинстве случаев это вырастает из неправильной структуры хранения данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2003, 17:30 |
|
||
|
Сложный фильтр
|
|||
|---|---|---|---|
|
#18+
Filter накладывает условия на уже полученные данные без какого либо обращения к БД. Поэтому условия в нем должны быть простые типа <имя поля><операция сравнения><константа> AND/OR ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2003, 04:38 |
|
||
|
Сложный фильтр
|
|||
|---|---|---|---|
|
#18+
Переформулирую запрос: возможен ли фильтр следующего формата – <ИМЯ ПОЛЯ> IN (SELECT … FROM …). Почему, я так упорно хочу реализовать это через фильтр: В процессе авторизации пользователя в зависимости от прав пользователя сервер MS SQL генерирует SQL выражение ограничивающее данные доступные пользователю (через ограничение фразы WHERE). В процессе работы пользователю требуется временная фильтрация по определенным параметрам, после чего фильтр удаляется (почему-то некоторым пользователям не нравиться поиск – им подавай фильтр :( ). Я реализовал фильтр типа <ИМЯ ПОЛЯ> IN (SELECT … FROM …) через включение данного выражения в тело SQL запроса, но мне это решение кажется тяжеловесным: вводится новые переменные и усложняется логика программы. Поэтому задам вопрос по другому: принципиально это возможно или нет? С уважением, Александр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2003, 10:24 |
|
||
|
Сложный фильтр
|
|||
|---|---|---|---|
|
#18+
Ну тебеж написали, что локально нет. В процессе авторизации пользователя в зависимости от прав пользователя сервер MS SQL генерирует SQL выражение ограничивающее данные доступные пользователю (через ограничение фразы WHERE). Это вот как понимать, кто и что генерит. Обычно такие вещи делаются через таблицы прав доступа и представления. А вот про логику давай побеседуем. Как визуально то реализовать фильтрацию IN. Ну тоесть как это выглядеть должно. Ну нарастающий фильтр по нескольким полям это я еще понимаю. А у тебя что? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2003, 10:45 |
|
||
|
Сложный фильтр
|
|||
|---|---|---|---|
|
#18+
Да, я вот тоже не понял - чего он там фильтрует, при чем тут права? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2003, 11:08 |
|
||
|
Сложный фильтр
|
|||
|---|---|---|---|
|
#18+
Имеются права пользователя не на таблицы, а на записи в таблице. Имеется таблица прав и пользователей. Фильтр - «Помощник» для пользователя по поиску нужной информации среди данных уже ограниченных сервером. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2003, 11:27 |
|
||
|
Сложный фильтр
|
|||
|---|---|---|---|
|
#18+
А при чем тут фильтр IN (select * from) ??? Откуда ты собрался select делать? Что, пользователь сам таблицу для этого создает? Ну и что, что права на запись - добавить лишние условия не проблема ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2003, 11:52 |
|
||
|
Сложный фильтр
|
|||
|---|---|---|---|
|
#18+
Так ты и не понял, что я у тебя спрашивал. Пусть имеем журнал документов с полями Дата Документа, Дата проводки, Тип документа, Вид операции, Контрагент, Договор, Сумма. У меня реализовано два вида фильтра, фильтр по выделенному и нарастающий фильтр. Смысл работы первого понятен. Юзер встает на поле, щелкает на кнопке тулбара и ему отфильтровываются записи по значению выделенного поля. Нарастающий фильтр позволяет юзеру отфильтровать данные по сложному фильтру, например за конкретную дату для конкретного типа документа по конкретному договору. Т.Е. пользователь встает в одно поле щелк - есть условие, второе поле щелк, еще условие и т.д. Отмена фильтра идет в обратном порядке, хотя есть возможность и сразу снять все условия фильтрации. В принципе, юзер также может нафильтровать и по нескольким значениям в одном поле. Только делаю я это ни черезе IN, а через AND ()... А тебе то что надо сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2003, 11:56 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=32118153&tid=2118949]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
47ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 349ms |

| 0 / 0 |
