Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.12.2009, 23:26   #1
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию не работает фильтр

здравствуйте.
не могу настроить фильтр таблицы в базе,
чтобы искались и отображались строки по определенным параметрам
вот код
Код:
procedure TSDIAppForm.Button3Click(Sender: TObject);
var s,v: string;
begin
if RadioGroup1.ItemIndex = 0 then s:= 'BOOKAUTHOR';
if RadioGroup1.ItemIndex = 1 then  s:= 'BOOKNAME';

if DataModule1.Books_table.Locate(s, quotedstr(Edit3.Text),[loCaseInsensitive])
then
begin
DataModule1.Books_table.filtered:=false;
if RadioGroup1.ItemIndex = 0 then DataModule1.Books_table.filter:='BOOKAUTHOR= '+Edit3.Text;
if RadioGroup1.ItemIndex = 1 then DataModule1.Books_table.filter:='BOOKNAME= '+Edit3.Text;
DataModule1.Books_table.filtered:=true;
ShowMessage('Поиск успешно завершен.')  ;
end
else
 begin
   if RadioGroup1.ItemIndex = 0 then ShowMessage('Книги искомого автора не найдены!');
   if RadioGroup1.ItemIndex = 1 then ShowMessage('Искомая книга не найдена!');
 end;
end;
пожалуйста помогите найти ошибку.буду очень признателен

У нас принято оформлять код специальным тэгом - кнопочка "#".
Модератор
Если помог, проси поставить минус. Будь оригинален!

Последний раз редактировалось mihali4; 21.12.2009 в 23:48.
Rin вне форума Ответить с цитированием
Старый 21.12.2009, 23:52   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

QuotedStr(Edit3.Text) везде нужно. И в фильтре тоже.
mihali4 вне форума Ответить с цитированием
Старый 21.12.2009, 23:59   #3
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

добавлял QuotedStr(Edit3.Text) везде, все равно фильтр не работает.
выдает сообщение
'Книги искомого автора не найдены!' или 'Искомая книга не найдена!'
а при пустом Edit3 пишет эПоиск успешно завершен.', но результата не выдает
Если помог, проси поставить минус. Будь оригинален!
Rin вне форума Ответить с цитированием
Старый 22.12.2009, 00:07   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

То есть Locate не выполняется.
Вы уверены, что вам нужен параметр [loCaseInsensitive] ?
Попробуйте [].
Хотя, может быть и нужен.

И уберите строку
Код:
DataModule1.Books_table.filtered:=false;
Она лишняя.

Попробуйте подставить вместо S в Locate имя поля.
Я не уверен, что там можно использовать переменную.

З.Ы. Проверил, можно использовать переменную.

Последний раз редактировалось mihali4; 22.12.2009 в 00:17.
mihali4 вне форума Ответить с цитированием
Старый 22.12.2009, 00:20   #5
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

попробовал, все равно фильтр не работает.
что самое интересное в этом же проекте другой фильтр, написаный примерно так же работает (там я тоже в Locate использую переменную).
Если помог, проси поставить минус. Будь оригинален!
Rin вне форума Ответить с цитированием
Старый 22.12.2009, 00:23   #6
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Чудеса...
Попробуйте другой алгоритм.
Устанавливайте фильтр (без Locate - его не будем использовать).
И смотрите количество отфильтрованных записей.
0 - не найдено, >0 - найдено...
mihali4 вне форума Ответить с цитированием
Старый 22.12.2009, 00:33   #7
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

большое спасибо
Если помог, проси поставить минус. Будь оригинален!
Rin вне форума Ответить с цитированием
Старый 23.12.2009, 10:59   #8
Highlander1981
Пользователь
 
Регистрация: 12.11.2009
Сообщений: 20
По умолчанию

Мне кажется в этой строке:
Цитата:
if DataModule1.Books_table.Locate(s, quotedstr(Edit3.Text),[loCaseInsensitive])
quotedstr был лишним, если конечно у тебя данные не храняться в таблице с апострофами.
Highlander1981 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
DS фильтр PIKACHU Мультимедиа в Delphi 17 23.01.2017 08:04
TP7 чтение из файла, работает но не работает!? Qousio Помощь студентам 7 02.06.2009 09:37
Библиотека НЕ работает с 2008, но работает с 2000 SQL namenike Общие вопросы C/C++ 0 26.05.2009 11:04
Фильтр в форме не работает. Access'07 Talia Microsoft Office Access 7 15.01.2008 13:54