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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.05.2015, 16:47   #1
sasho999
Новичок
Джуниор
 
Регистрация: 09.05.2015
Сообщений: 1
По умолчанию Помогите с частью кода

есть две таблицы (одна подчиненна другой) табл. страны и таблица (показатели) подключены через adoquery. Мне надо вывести среднее ариф. по столбцу таблицы "показатели" за заданный промежуток времени. Все работает, но когда в запрос добавляю условие учета времени прога выдает значение 0. Подскажите что у меня не так

Код:
procedure TForm1.DateTimePicker1Change(Sender: TObject);
begin
     DateTimePicker1.Time := StrToTime('00:00:01');
     DateTimePicker2.Time := StrToTime('23:59:59');
     ADOQuery2.SQL.Clear;
     ADOQuery2.SQL.Text :='select *from показатели where id_страны=:id_страны and дата between :data1 and :data2 ORDER BY дата';
     ADOQuery2.Close;
     ADOQuery2.Parameters.ParamByName('data1').Value:=DateToStr(DateTimePicker1.DateTime);
     ADOQuery2.Parameters.ParamByName('data2').Value:=DateToStr(DateTimePicker2.DateTime);
     ADOQuery2.Active:=true;
 
end;
 
procedure TForm1.DateTimePicker2Change(Sender: TObject);
begin
     DateTimePicker1.Time := StrToTime('00:00:01');
     DateTimePicker2.Time := StrToTime('23:59:59');
     ADOQuery2.SQL.Clear;
     ADOQuery2.SQL.Text := 'select *from показатели where id_страны=:id_страны and дата between :data1 and :data2 ORDER BY дата';
     ADOQuery2.Close;
     ADOQuery2.Parameters.ParamByName('data1').Value:=DateToStr(DateTimePicker1.DateTime);
     ADOQuery2.Parameters.ParamByName('data2').Value:=DateToStr(DateTimePicker2.DateTime);
     ADOQuery2.Active:=true;
end;
 
procedure TForm1.ComboBox1Change(Sender: TObject);
var
i:double;
begin
 DateTimePicker1.Time := StrToTime('00:00:01');
 DateTimePicker2.Time := StrToTime('23:59:59');
if Combobox1.ItemIndex = 0 then
  ADOQuery3.Active:=False;
  ADOQuery3.SQL.Clear;
  AdOQuery3.SQL.Text:='SELECT AVG(ВВП), id_страны FROM показатели where id_страны=:id_страны and дата between :data1 and :data2 group by id_страны';
 // при таком условии выдает значение 0
  if Combobox1.ItemIndex = 1 then
  AdOQuery3.SQL.Text:='SELECT AVG(ВВП_YoY), id_страны FROM показатели where id_страны=:id_страны group by id_страны';
  AdoQuery3.Open;
  i:= AdoQuery3.Fields[0].Asfloat;
  ADOQuery3.Close;
  ADOQuery3.Active:=true;
  Label2.Caption:=floatToStr (i);
  ADOQuery3.Parameters.ParamByName('data1').Value:=DateToStr(DateTimePicker1.DateTime);
  ADOQuery3.Parameters.ParamByName('data2').Value:=DateToStr(DateTimePicker2.DateTime);

Последний раз редактировалось Stilet; 09.05.2015 в 17:07.
sasho999 вне форума Ответить с цитированием
Старый 13.05.2015, 09:36   #2
opencloser
Пользователь
 
Регистрация: 04.03.2014
Сообщений: 15
По умолчанию

смотреть
DateTimePicker1.Time := StrToTime('00:00:01');
и
DateToStr(DateTimePicker1.DateTime) ;
что то тут не так....
opencloser вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с практической частью. danil65rus Помощь студентам 0 20.05.2014 12:53
Как решить задачу с частью выделенного текста? Simone-si Microsoft Office Excel 3 21.09.2009 15:37
параметрический запрос с частью слова в качестве параметра yulia БД в Delphi 6 09.05.2008 20:27
Помогите с серверной частью на WinSock Miha Работа с сетью в Delphi 4 25.06.2007 11:10