Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 19.05.2013, 16:27
Аватар для agent_mariya
agent_mariya agent_mariya вне форума
Прохожий
 
Регистрация: 05.03.2013
Сообщения: 25
Репутация: 10
Вопрос Фильтрация ADOTable

Всем привет! у меня такая ситуация: есть база данных,которая должна фильтроваться по ФИО и дате. пишу следущий код:
Код:
var
s:string;
begin
if inputquery('Фильтация таблицы','Введите название отдела...',s) then begin
adotable1.Filtered:=true;
adotable1.Filter:='отдел='''+s+'''';
end else  adotable1.Filtered:=false;
end;
по ФИО фильтрует,а по дате нет!пишет что,аргументы имеют не правильный тип,выходят за пределы допустимого диапазона или вступают в конфликт друг с другом! Объясните пож-та начинающему,что это значит? и как сделать что бы работало?!уже весь интернет облазила!
Ответить с цитированием
  #2  
Старый 19.05.2013, 16:37
Аватар для Mrak
Mrak Mrak вне форума
Местный
 
Регистрация: 26.01.2013
Адрес: МО
Сообщения: 438
Версия Delphi: XE2
Репутация: 17
По умолчанию

сделай так
Код:
adotable1.Filtered:=false;
adotable1.Filter:='отдел='''+s+'''';
adotable1.Filtered:=true;
__________________
Я за здоровый экстрим!
Спасибо за "спасибо")
Ответить с цитированием
  #3  
Старый 19.05.2013, 16:37
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Лучше запрос передёргивать с дописанными order by ... asc/desc. Ибо так проще, да и пожалуй правильнее.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #4  
Старый 19.05.2013, 16:42
Аватар для Mrak
Mrak Mrak вне форума
Местный
 
Регистрация: 26.01.2013
Адрес: МО
Сообщения: 438
Версия Delphi: XE2
Репутация: 17
По умолчанию

Цитата:
Сообщение от M.A.D.M.A.N.
Лучше запрос передёргивать с дописанными order by ... asc/desc. Ибо так проще, да и пожалуй правильнее.
проще, правильнее, быстрее, удобнее, гибче
я когда тэйблы пихал в первом проекте, думал, че за фигня эти запросы.
сейчас, используя только кверики во 2ом, думаю, что первый надо полностью переделать)
__________________
Я за здоровый экстрим!
Спасибо за "спасибо")
Ответить с цитированием
  #5  
Старый 19.05.2013, 16:43
Аватар для agent_mariya
agent_mariya agent_mariya вне форума
Прохожий
 
Регистрация: 05.03.2013
Сообщения: 25
Репутация: 10
По умолчанию

Цитата:
Сообщение от Mrak
сделай так
Код:
adotable1.Filtered:=false;
adotable1.Filter:='отдел='''+s+'''';
adotable1.Filtered:=true;
запускает, но не фильтрует
Ответить с цитированием
  #6  
Старый 19.05.2013, 16:52
Аватар для Mrak
Mrak Mrak вне форума
Местный
 
Регистрация: 26.01.2013
Адрес: МО
Сообщения: 438
Версия Delphi: XE2
Репутация: 17
По умолчанию

Цитата:
Сообщение от agent_mariya
запускает, но не фильтрует
отдел - поле так и называется?
пробуй пробелы ставь после и перед =
в s точно то что надо вводишь - регистр букв тож чувствителен
может like вместо = использовать

ФИО + дата
Код:
adotable1.Filter:='date = ' + QuotedStr(date) + ' and FIO = "Йожеков"';
__________________
Я за здоровый экстрим!
Спасибо за "спасибо")

Последний раз редактировалось Mrak, 19.05.2013 в 16:56.
Ответить с цитированием
  #7  
Старый 19.05.2013, 17:11
Аватар для agent_mariya
agent_mariya agent_mariya вне форума
Прохожий
 
Регистрация: 05.03.2013
Сообщения: 25
Репутация: 10
По умолчанию

Цитата:
Сообщение от Mrak
отдел - поле так и называется?
название поля "Дата начало"
код у меня получается следущий:
Код:
var
s:string;
begin
if inputquery('Фильтация таблицы','Введите дату начала действия полиса',s) then begin
adotable1.Filtered:=true;
adotable1.Filter:='Дата начало = '''+s+'''' end else   adotable1.Filtered:=false;
end;
Ответить с цитированием
  #8  
Старый 19.05.2013, 17:18
Аватар для Mrak
Mrak Mrak вне форума
Местный
 
Регистрация: 26.01.2013
Адрес: МО
Сообщения: 438
Версия Delphi: XE2
Репутация: 17
По умолчанию

значит s неверно вводите или в базе не такой формат даты, пробуйте без inputqury, пишите дату прям в filter... пока не заработает))
для чистоты возьмите фамилию, а не дату.
Да, еще раз напомню на всякий случай, что filtered:=true должен идти после filter:=

Работает?
__________________
Я за здоровый экстрим!
Спасибо за "спасибо")
Ответить с цитированием
Этот пользователь сказал Спасибо Mrak за это полезное сообщение:
agent_mariya (19.05.2013)
  #9  
Старый 19.05.2013, 17:30
Аватар для agent_mariya
agent_mariya agent_mariya вне форума
Прохожий
 
Регистрация: 05.03.2013
Сообщения: 25
Репутация: 10
По умолчанию

все до меня дошло где ошибка) дата это же не строка!!!!) надо другой тип присвоить!
Ответить с цитированием
  #10  
Старый 19.05.2013, 17:31
Аватар для agent_mariya
agent_mariya agent_mariya вне форума
Прохожий
 
Регистрация: 05.03.2013
Сообщения: 25
Репутация: 10
По умолчанию

спасибо большое)
Ответить с цитированием
  #11  
Старый 19.05.2013, 17:42
Аватар для Mrak
Mrak Mrak вне форума
Местный
 
Регистрация: 26.01.2013
Адрес: МО
Сообщения: 438
Версия Delphi: XE2
Репутация: 17
По умолчанию

Пожалуйста)
Плюс, если тип даты - дата)) То становится доступной фильтрация в диапазоне, например
Код:
table_name.Filter:='date1 >='+QuotedStr(d1)+' and date1 <= '+QuotedStr(d2);
Вам так же посоветую лучше использовать механизмы запросов на основе Query
__________________
Я за здоровый экстрим!
Спасибо за "спасибо")
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 16:32.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter