Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Проблема с фильтром в ADO рекордсете / 12 сообщений из 12, страница 1 из 1
27.07.2009, 15:15
    #36111199
ROLpogo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с фильтром в ADO рекордсете
Не уверен сюда ли я постю. Проблема в следующем:

У рекордсета есть св-во: Filter. С его помощью в программе я отсортировываю данные:

Код: plaintext
m_Grid.m_Recordset->Filter = "ComplexText like '%Нр%'";

В таком варианте все работает отлично. Но мне нужен ещё и такой инверсионный фильтр:
Код: plaintext
m_Grid.m_Recordset->Filter = "ComplexText not like '%Нр%'";

Но похоже конструкция "not like" не распознается, т.к. сразу в этой строке выдает ошибку.

Кто-нибудь сталкивался? Как вылечить?
...
Рейтинг: 0 / 0
27.07.2009, 15:20
    #36111218
buser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с фильтром в ADO рекордсете
Код: plaintext
m_Grid.m_Recordset->Filter = "not ComplexText like '%Нр%'";
...
Рейтинг: 0 / 0
27.07.2009, 15:23
    #36111231
buser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с фильтром в ADO рекордсете
Не то... ща поищу... выб ошибку написали... были грабли с лайком и составными фильтрами..
...
Рейтинг: 0 / 0
27.07.2009, 15:36
    #36111274
ROLpogo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с фильтром в ADO рекордсете
buserНе то... ща поищу... выб ошибку написали... были грабли с лайком и составными фильтрами..

Ошибка возникает здесь, но на экран не выводится.

Код: plaintext
1.
2.
3.
inline void Recordset15::PutFilter ( const _variant_t & Criteria ) {
    HRESULT _hr = put_Filter(Criteria);
    if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
}

Тут, например, Criteria = "ComplexText not like '%1%'"
...
Рейтинг: 0 / 0
27.07.2009, 16:00
    #36111350
buser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с фильтром в ADO рекордсете
Не найти... но, оч похоже, что про not придётся забыть...
...
Рейтинг: 0 / 0
28.07.2009, 10:38
    #36112665
ROLpogo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с фильтром в ADO рекордсете
Может есть у кого-нибудь ещё мысли как обойти эту проблему?
...
Рейтинг: 0 / 0
28.07.2009, 11:03
    #36112737
buser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с фильтром в ADO рекордсете
1. отказ от ADO; 2. перебор на клиенте; 3. отбор на сервере ?
...
Рейтинг: 0 / 0
28.07.2009, 11:51
    #36112913
ROLpogo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с фильтром в ADO рекордсете
buser,
Не совсем понял про 2 и 3 пункты.

Обрисую картину для ясности:
В гриде находятся записи, в поле ComplexText у которых могут встречаться такие вариации:

a[d]
a[d], b[d]
a[d], b[d], c[d]

здесь a, b, c - числа,
d - строка, которая может принимать следующие значения:
Ас, Рис, Черт, Шабл, пл, М, Бр, Нр
[] указывает на то, что d не обязательно. т.е. ComplexText может, например таким:
4
4Рис, 6Бр
5пл, 4, 6

Так вот я по одной кнопке хочу увидеть все записи, где встречается Рис, а по другой кнопке все записи где Рис отсутствует
...
Рейтинг: 0 / 0
28.07.2009, 13:09
    #36113156
buser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с фильтром в ADO рекордсете
С адошным рекордсетом наверное проще завести в рунтайме служебную колонку (флаг)... дальше лайком отобрать все что нужно и поднять флажок для найденных записей... Далее фильтровать по нему
...
Рейтинг: 0 / 0
28.07.2009, 15:18
    #36113605
ROLpogo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с фильтром в ADO рекордсете
buserС адошным рекордсетом наверное проще завести в рунтайме служебную колонку (флаг)... дальше лайком отобрать все что нужно и поднять флажок для найденных записей... Далее фильтровать по нему

Т.е. при нажатии на кнопку, по которой я хочу увидеть все записи не содержащие 'Рис' в поле ComplexText, мне нужно спева пройтись курсором по всему рекордсету, пропарсить вручную поле ComplexText для каждой записи, выставить где надо флаг в служебном поле bShow, а только затем вызвать m_Grid.m_Recordset->Filter = "bShow = 1";?

Я правильно понял? :-)
...
Рейтинг: 0 / 0
28.07.2009, 17:57
    #36114191
buser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с фильтром в ADO рекордсете
бегать придётся полюбому :)
...
Рейтинг: 0 / 0
29.07.2009, 13:28
    #36115444
ROLpogo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с фильтром в ADO рекордсете
buserбегать придётся полюбому :)

- Ведь этак можно
человека с ног сбить. Да ведь это же черт знает что такое! А? Шэк? (c)
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Проблема с фильтром в ADO рекордсете / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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