Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Фильтр данных 
V
    Опции темы
Magnetto
Дата 28.2.2009, 00:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 1.2.2007
Где: Ukraine

Репутация: нет
Всего: нет



доброй ночи...помогите разобраться с фильтрацией данных в элементарной базе на Paradox

допустим есть таблица с 4ех елементов : Имя , фамилия , дата рождения , количество фантиков

поля допустим будут названы Name , Surname , Date , Num

есть 4ре строки на каждую колонку и кнопка поиск

с одноколоночным точным поиском по тексту разобрался:
Код

datamodule1.Table1.Filter := 'Name = '''+edit1.Text+''''; //точный поиск по колонке Name

так же нарыл в гугле возможность частичного поиска , т.е "123*" = "123456789...."
Код

datamodule1.Table1.Filter := 'Name = '''+edit1.Text+'*'''; //частичный поиск в правую сторону

по сортировке чисел в учебнике нашел пример , но он не работает
если допустим в колонке фантиков есть числа от 1 до 50 , а нам нужно отфильтровать от 5 до 20
Код

Datamodule1.Table1.SetRangeStart;
Datamodule1.Table1.FieldByName('Num').AsInteger := 5;
Datamodule1.Table1.SetRangeEnd;
datamodule1.Table1.FieldByName('Num').AsInteger := 20;
Datamodule1.Table1.ApplyRange;

но у меня таблица пустая становится , т.е ничего не находит =\

вопрос 1 - а каким образом можно задать функцию фильтра в обе стороны?....т.е "*23*" = "acb23asde"
вопрос 2 - как фильтровать таблицу по полю Date?
вопрос 3 - как фильтровать по нескольким колонкам, если заранее неизвестно , которые из этих 4ех выберет пользователь для поиска?(допустим по имени и количеству фантиков , или по фамилии и дате рождения)?


заранее благодарен за ответы...
уже сломал моск в поисках , нигде толком это не описано =\

Это сообщение отредактировал(а) Magnetto - 28.2.2009, 00:08
PM MAIL WWW ICQ   Вверх
Akella
Дата 28.2.2009, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Цитата(Magnetto @  28.2.2009,  00:05 Найти цитируемый пост)
вопрос 3 - как фильтровать по нескольким колонкам,

а про or/and забыл?


Цитата(Magnetto @  28.2.2009,  00:05 Найти цитируемый пост)
заранее неизвестно , которые из этих 4ех выберет пользователь для поиска

да, заранее не известно, но когда пользователь выбрал - ты же об этом знаешь?
вот и строй фильтр, в чем проблема-то?


Цитата(Magnetto @  28.2.2009,  00:05 Найти цитируемый пост)
нигде толком это не описано =\

ты же сам привел примеры, а говоришь не описано

примерно так
'Name = '''+edit1.Text+'''  or sername = '''+edit2.Text+''''; 

и ещё почитай про OnFilterRecord, мало того я давал примеры на тему: сложная фильтрация smile , посмотри вниз страницы

мало того, ты когда создавал тему, ПОЧЕМУ НЕ ОБРАТИЛ ВНИМАНИЕ НА ТЕМЫ, КОТОРЫЕ ТЕБЕ ФОРУМ ПОКАЗАЛ, ОТВЕТЬ!!!
PM MAIL   Вверх
Magnetto
Дата 28.2.2009, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 1.2.2007
Где: Ukraine

Репутация: нет
Всего: нет



Цитата(Akella @  28.2.2009,  10:44 Найти цитируемый пост)
а про or/and забыл?

уже при 4ех столбцах будет 2^4 вариантов с and и еще столько же с or , а если их вместе еще взять....
пример: пользователь выбрал имя или фамилию и возраст...имя и фамилию или возраст...

суть вопроса была в том , что нельзя ли по ходу проверок добавлять в фильтр новые значения?(проверили чекбокс имени - : ага , пользователь выбрал его - отфильтровали по имени....дальше пользователь выбрал еще и фамилию - ага , дофильтруем наш результат еще и по фамилии)


Цитата(Akella @  28.2.2009,  10:44 Найти цитируемый пост)
мало того, ты когда создавал тему, ПОЧЕМУ НЕ ОБРАТИЛ ВНИМАНИЕ НА ТЕМЫ, КОТОРЫЕ ТЕБЕ ФОРУМ ПОКАЗАЛ, ОТВЕТЬ!!! 

бегло читал , относительно своего случая ничего не увидел , да и поздно уже было =\
PM MAIL WWW ICQ   Вверх
Akella
Дата 28.2.2009, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Цитата(Magnetto @  28.2.2009,  11:36 Найти цитируемый пост)
бегло читал , относительно своего случая ничего не увидел , да и поздно уже было =\ 

так никогда не поздно посмотреть smile  вниз странички smile

Добавлено через 2 минуты и 58 секунд
Цитата(Magnetto @  28.2.2009,  11:36 Найти цитируемый пост)
: ага , пользователь выбрал его - отфильтровали по имени....дальше пользователь выбрал еще и фамилию - ага , дофильтруем наш результат еще и по фамилии)

я ж тебе про темы внизу странички который раз пишу
PM MAIL   Вверх
Magnetto
Дата 28.2.2009, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 1.2.2007
Где: Ukraine

Репутация: нет
Всего: нет



PM MAIL WWW ICQ   Вверх
vovk
Дата 28.2.2009, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 28.2.2008

Репутация: 6
Всего: 6



Ещё добавлю или нет.. но всёже 
если так уж хочется использовать TTable то к его filter можно добавлять, что угодно главное чтоб это "что угодно" было логично, то есть
допустим фильтр = name='сергей' or name='пётр'  
если вдруг надо добавить чтото ещё надо это делать соответственно условию ... в идеале добавлять условия к существуещему фильтру. На практике лучше переписывать фильтр заново, то есть условия гдето сохранять. Тогда or and like плюс () станут незаменимыми помошниками. Но если говорить серьёзно то лучше сразу забыть о Ttable переходить на Tquery (это касательно не только парадокса и BDE) и изучать SQL
 Могу написать прнимеры фильрации на твои задачи... но всёже поверь фильтр нужен как вспомогательное средство.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0943 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.