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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2007, 16:50   #11
фЁдОр
Форумчанин
 
Аватар для фЁдОр
 
Регистрация: 06.09.2007
Сообщений: 908
По умолчанию

Цитата:
Сообщение от Alex21 Посмотреть сообщение
Похоже скобок маловато.. FieldByName(( , и в конце еще одну.
Код HTML:
form1.ADOQuery1.FieldByName(('cena')>=StrToFloat(edit1.Text)) and form1.ADOQuery1.FieldByName(('cena')<StrToFloat(edit2.Text));
Нет, все равно ругается, а по другому поставления скобок я пока не вижу, но я пробую разные еще варианты.
Цитата:
Сообщение от Alex21 Посмотреть сообщение
Почему не делать по аналогии, предложенной nataly_ukr?
Я не имею ничего против этого кода, а наоброт - благодарен за него, я просто посчитал, что этот код будет проще и объем меньше, но если мне все же не удаться реализовать этот код, то конечно же попробую тот.
фЁдОр вне форума Ответить с цитированием
Старый 06.12.2007, 18:02   #12
nataly_ukr
Пользователь
 
Регистрация: 21.08.2007
Сообщений: 46
По умолчанию

Напиши полностью строку form1.ADOQuery1.FieldByName(('cena' )>=StrToFloat(edit1.Text)) and form1.ADOQuery1.FieldByName(('cena' )<StrToFloat(edit2.Text));
Что впереди IF или Filtеr А то не понятен смысл того , что ты делаешь И код ошибки внизу написан при компиляции , можешь его изобразить А то лечим как в анекдоте по фотографии, Скобки вторые здесь явно не нужны
nataly_ukr вне форума Ответить с цитированием
Старый 06.12.2007, 18:18   #13
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Вы просто перемудрили.
Если программно, то так:
ADOQuery.Filtered:=True;
ADOQuery.Filter:='cena>='+''''+StrT oFloat(edit1.Text)+''''+' and cena<='+ ''''+StrToFloat(edit2.Text)+'''';
З.Ы. Четыре кавычки - это устоявшаяся привычка. Некоторые из вас обычно пишут:
ADOQuery.Filter:='cena>='''+StrToFl oat(edit1.Text)+''' and cena<='''+StrToFloat(edit2.Text)+'' ';

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

Цитата:
Сообщение от nataly_ukr Посмотреть сообщение
Напиши полностью строку form1.ADOQuery1.FieldByName(('cena' )>=StrToFloat(edit1.Text)) and form1.ADOQuery1.FieldByName(('cena' )<StrToFloat(edit2.Text));
Что впереди IF или Filtеr А то не понятен смысл того , что ты делаешь И код ошибки внизу написан при компиляции , можешь его изобразить А то лечим как в анекдоте по фотографии, Скобки вторые здесь явно не нужны
Я пытался откомпилировать вот этот код:
Код HTML:
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
 ADOQuery1.Close;
 ADOQuery1.SQL.Clear;
 ADOQuery1.Sort:=('cena');
 ADOQuery1.FieldByName(('cena')>StrToFloat(edit4.Text) and ADOQuery1.FieldByName('cena')<StrToFloat(edit5.Text));
 ADOQuery1.Open;
end;
Но теперь я понимаю, что это грубая ошибка!
nataly_ukr, объясните, пожалуйста, в Вашем первом рарианте я не смог понять, что означают переменные D1 и D2, как их использовать?
Цитата:
Сообщение от mihali4 Посмотреть сообщение
Вы просто перемудрили.
Если программно, то так:
ADOQuery.Filtered:=True;
ADOQuery.Filter:='cena>='+''''+StrT oFloat(edit1.Te xt)+''''+' and cena<='+ ''''+StrToFloat(edit2.Text)+'''';
З.Ы. Четыре кавычки - это устоявшаяся привычка. Некоторые из вас обычно пишут:
ADOQuery.Filter:='cena>='''+StrToFl oat(edit1.Text) +''' and cena<='''+StrToFloat(edit2.Text)+'' ';
mihali4, я что-то совсем с этими ковычками запутася. Попробовал написать по вашему примеру, но всеравнo ругается
Код HTML:
ADOQuery1.Filtered:=True;
ADOQuery1.Filter:='cena>='+''''+StrToFloat(edit4.Text)+''''+' and cena<='+ ''''+StrToFloat(edit5.Text)+'''';
В принципе, направление я понял. Всем большое спасибо!
фЁдОр вне форума Ответить с цитированием
Старый 07.12.2007, 12:46   #15
nataly_ukr
Пользователь
 
Регистрация: 21.08.2007
Сообщений: 46
По умолчанию

DateStart := Edit1.Text; // заношу в переменные значения из Edit1
DateEnd := Edit2.Text; // edit2

Пусть имя твоего файла например ZAKAZ
Query1.SQL.Add('Select * From ZAKAZ where CENA BETWEEN :D1 and :D2');

// BETWEEN параметр говорит запросу , что будет ограничение данных между D1 и D2

Query1.ParamByName('d1').AsStr := DateStart; // передача данных в парамаетры
Query1.ParamByName('d2').AsStr := DateEnd;

Ты только приведи все или к String или к Float
nataly_ukr вне форума Ответить с цитированием
Старый 07.12.2007, 13:19   #16
фЁдОр
Форумчанин
 
Аватар для фЁдОр
 
Регистрация: 06.09.2007
Сообщений: 908
По умолчанию

Цитата:
Сообщение от nataly_ukr Посмотреть сообщение
DateStart := Edit1.Text; // заношу в переменные значения из Edit1
DateEnd := Edit2.Text; // edit2

Пусть имя твоего файла например ZAKAZ
Query1.SQL.Add('Select * From ZAKAZ where CENA BETWEEN :D1 and :D2');

// BETWEEN параметр говорит запросу , что будет ограничение данных между D1 и D2

Query1.ParamByName('d1').AsStr := DateStart; // передача данных в парамаетры
Query1.ParamByName('d2').AsStr := DateEnd;

Ты только приведи все или к String или к Float
Я пробовал как Вы написали, но он ругается, что поле 'D1' not fount. И поидие он правильно пишет, т.к. поля у меня такого нет, но ведь D1 - это же переменная!
Вот код:
Код HTML:
procedure TForm1.BitBtn1Click(Sender: TObject);
var
 Start, Finish, D1, D2: string;
begin
 Start:=edit4.Text;
 Finish:=edit5.Text;
 form1.ADOQueFirmRatissDisk.Close;
 form1.ADOQueFirmRatissDisk.SQL.Clear;
 form1.ADOQueFirmRatissDisk.SQL.Add('select * Price where cena between :D1 and :D2');
 form1.ADOQueFirmRatissDisk.FieldByName('D1').AsString:=Start;
 form1.ADOQueFirmRatissDisk.FieldByName('D2').AsString:=Finish;
 form1.ADOQueFirmRatissDisk.Open;
end;
Не судите, что переменные строкового типа, с вещественными тоже самое. Тут я не могу понять переменную D1 и D2.

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

Почитай, пригодится.
Alex21 вне форума Ответить с цитированием
Старый 07.12.2007, 13:39   #18
nataly_ukr
Пользователь
 
Регистрация: 21.08.2007
Сообщений: 46
По умолчанию

d1,d2: Double;
nataly_ukr вне форума Ответить с цитированием
Старый 07.12.2007, 13:46   #19
dron-s
Форумчанин
 
Регистрация: 04.03.2007
Сообщений: 615
По умолчанию

Цитата:
d1,d2: Double;
TDate должно они быть
dron-s вне форума Ответить с цитированием
Старый 08.12.2007, 02:02   #20
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
mihali4, я что-то совсем с этими ковычками запутася. Попробовал написать по вашему примеру, но всеравнo ругается
Это уже я там намудрил - StrToFloat там совершенно не нужны, просто Edit4.Text и Edit5.Text.
То есть:
Код:
ADOQuery1.Filtered:=True;
ADOQuery1.Filter:='cena>='+''''+edit4.Text+''''+' and cena<='+ ''''+edit5.Text+'''';
mihali4 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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