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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2007, 14:25   #1
фЁдОр
Форумчанин
 
Аватар для фЁдОр
 
Регистрация: 06.09.2007
Сообщений: 908
По умолчанию Указать критерии поиска?

Здравствуйте, уважаемые программисты!
Подскажите, пожалуйста, как мне сделать следующий поиск: нужно, к примеру, найти товар от 5 до 15 р., т.е. в edit1 я ввожу цену от..., а в edit2 я ввожу цену до...
В справочниках и в книгах, которые у меня есть - ничего ненахожу, да и врятли про это будет где-либо написано, тут нужно как-то самому домыслить, но пока не представляю как это сделать(ни LIKE, ни LOCATE не получается).
фЁдОр вне форума Ответить с цитированием
Старый 06.12.2007, 14:36   #2
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

Полагаю речь идет о динамических SQL-запросах.
Alex21 вне форума Ответить с цитированием
Старый 06.12.2007, 14:53   #3
фЁдОр
Форумчанин
 
Аватар для фЁдОр
 
Регистрация: 06.09.2007
Сообщений: 908
По умолчанию

Цитата:
Сообщение от Alex21 Посмотреть сообщение
Полагаю речь идет о динамических SQL-запросах.
Alex21, спасибо за ссылку! Толком там ничего ненаписано, но идею вроде уловил.
фЁдОр вне форума Ответить с цитированием
Старый 06.12.2007, 14:55   #4
nataly_ukr
Пользователь
 
Регистрация: 21.08.2007
Сообщений: 46
По умолчанию

Здесь в Edit принимается дата


Form32.Query1.Close;
Form32.Query1.Sql.Clear;

DateStart := StrToDate(Form32.MaskEdit1.Text);
DateEnd := StrToDate(Form32.MaskEdit2.Text);

// DateStart := StrToDate('01.07.2007');
// DateEnd := StrToDate('31.07.2007');

Form32.Query1.SQL.Add('Select * From '+imjm+' where ddok BETWEEN :D1 and :D2 order by ddok');

Form32.Query1.ParamByName('d1').AsD ate := DateStart;
Form32.Query1.ParamByName('d2').AsD ate := DateEnd;

Form32.Query1.Open;
nataly_ukr вне форума Ответить с цитированием
Старый 06.12.2007, 14:56   #5
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Можно и фильтром датасета:
cena>=FloatToStr(Edit1.Text) and cena<=FloatToStr(Edit2.Text)
прямо в режиме редактора все и отработает, не забудьте только выставить свойство FILTERED в TRUE.
Ну, опечатался... Не FloatToStr, а StrToFloat...

Последний раз редактировалось mihali4; 06.12.2007 в 18:09.
mihali4 вне форума Ответить с цитированием
Старый 06.12.2007, 15:44   #6
фЁдОр
Форумчанин
 
Аватар для фЁдОр
 
Регистрация: 06.09.2007
Сообщений: 908
По умолчанию

Очевидно, что я чего-то недопонимаю, но почему я не могу edit1 преобразовать в числовой тип, т.е. не получается выполнить FloatToStr(edit1.text)?
фЁдОр вне форума Ответить с цитированием
Старый 06.12.2007, 16:07   #7
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

Потому, что надо StrToFloat(Edit1.Text)
Alex21 вне форума Ответить с цитированием
Старый 06.12.2007, 16:19   #8
фЁдОр
Форумчанин
 
Аватар для фЁдОр
 
Регистрация: 06.09.2007
Сообщений: 908
По умолчанию

написал вот эту строчку:
Код HTML:
form1.ADOQuery1.FieldByName('cena')>=StrToFloat(edit1.Text) and form1.ADOQuery1.FieldByName('cena')<StrToFloat(edit2.Text);
, а компилятор ругается. Из-за чего?

Последний раз редактировалось фЁдОр; 06.12.2007 в 16:25.
фЁдОр вне форума Ответить с цитированием
Старый 06.12.2007, 16:35   #9
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

Похоже скобок маловато.. FieldByName(( , и в конце еще одну.

Почему не делать по аналогии, предложенной nataly_ukr?
Alex21 вне форума Ответить с цитированием
Старый 06.12.2007, 16:41   #10
nataly_ukr
Пользователь
 
Регистрация: 21.08.2007
Сообщений: 46
По умолчанию

form1.ADOQuery1.FieldByName('cena') .AsFloat
nataly_ukr вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как указать в регулярке............ Adamant PHP 12 25.03.2008 10:11
Нужны критерии сравнения программ Deris777 Помощь студентам 1 19.01.2008 10:19
Проблема с FindFirst, как указать меняющийся путь? _SacreD_ Общие вопросы Delphi 12 26.12.2007 16:14
Как указать путь компилируемуму exe файлу shurik_7866 Общие вопросы Delphi 2 18.07.2007 23:24
Как указать диапазон чисел? Inbox Общие вопросы Delphi 2 29.06.2007 01:21