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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2013, 17:20   #1
xsaroo
Пользователь
 
Регистрация: 14.10.2012
Сообщений: 40
По умолчанию Фильтрация по диапазону

Все привет.
Вообщем есть бд (в Access) в ней таблица с полем год_издания(тип числовой) нужно организовать фильтрацию по диапазону который пользователь пишет в edit1 и edit2 использую такой код
Код:
procedure TForm3.Button1Click(Sender: TObject);
begin
Form3.ADOQuery1.SQL.Clear;
Form3.ADOQuery1.SQL.Add('SELECT * FROM [Алфавитный] WHERE [Год_издания] BETWEEN ''%'+Edit1.Text+'%''and ''%'+Edit2.Text+'%''');
Form3.ADOQuery1.Active:=True;
end;
Но выдает ошибку "несоответствие типов данных в условии отбора"
Помогите пожалуйста
P.S использую adoquery , adoconnect ,data sourse.
xsaroo вне форума Ответить с цитированием
Старый 04.06.2013, 17:50   #2
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

Код:
procedure TForm3.Button1Click(Sender: TObject);
begin
  Form3.ADOQuery1.Close;
  Form3.ADOQuery1.SQL.Text := 'SELECT * FROM [Алфавитный] WHERE [Год_издания] BETWEEN :data1 AND :data2';
  Form3.ADOQuery1.Parameters.ParamByName('data1').Value := StrToInt(Edit1.Text);
  Form3.ADOQuery1.Parameters.ParamByName('data2').Value := StrToInt(Edit2.Text);
  Form3.ADOQuery1.Open;
end;
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 04.06.2013, 17:58   #3
xsaroo
Пользователь
 
Регистрация: 14.10.2012
Сообщений: 40
По умолчанию

Спасибо большое)
xsaroo вне форума Ответить с цитированием
Старый 05.06.2013, 00:59   #4
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
Сообщение от Yurk@ Посмотреть сообщение
Код:
procedure TForm3.Button1Click(Sender: TObject);
begin
  Form3.ADOQuery1.Close;
  Form3.ADOQuery1.SQL.Text := 'SELECT * FROM [Алфавитный] WHERE [Год_издания] BETWEEN :data1 AND :data2';
  Form3.ADOQuery1.Parameters.ParamByName('data1').Value := StrToInt(Edit1.Text);
  Form3.ADOQuery1.Parameters.ParamByName('data2').Value := StrToInt(Edit2.Text);
  Form3.ADOQuery1.Open;
end;
Почему (Edit2.Text) Я думаю что боле удобно (DateTimePicker.Date)
xxbesoxx вне форума Ответить с цитированием
Старый 05.06.2013, 06:01   #5
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

потому что
Цитата:
таблица с полем год_издания(тип числовой)
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Фильтрация данных по диапазону даты? sctr84 БД в Delphi 2 05.03.2012 08:55
Поиск по диапазону. D.O.G БД в Delphi 12 28.10.2010 10:17
Фильтрация по диапазону. D.O.G БД в Delphi 12 18.08.2010 10:02
Выборка номеров по диапазону zenner Microsoft Office Excel 14 23.06.2010 15:22
Форма фильтрации по диапазону Малой БД в Delphi 3 24.02.2010 13:24