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

 



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #16  
Старый 23.07.2011, 17:53
Аватар для Pilot_Red
Pilot_Red Pilot_Red вне форума
Продвинутый
 
Регистрация: 01.11.2006
Адрес: Карелия
Сообщения: 702
Версия Delphi: D7
Репутация: 11581
По умолчанию

Цитата:
Сообщение от Zhigalov
Да у мня 4 пикера. как ты и написал. Но я все равно не панимаю как сделать

Перед тем как у тебя будет выполнен запрос напиши следующее:

Код:
DateTimePicker1.time:=DateTimePicker2.time
DateTimePicker3.time:=DateTimePicker4.time

 ADOQuery1.Parameters.ParamByName('Param1').Value:=DateTimePicker1.DateTime;
 ADOQuery1.Parameters.ParamByName('Param2').Value:=DateTimePicker3.DateTime;
и не забудь параметры создать (можно прямо в редакторе компонента ADOQuery1)
и вот это прописать в своем скрипте
where SimpleTime >= :Param1 and SimpleTime < :Param2
Ответить с цитированием
  #17  
Старый 23.07.2011, 18:03
Zhigalov Zhigalov вне форума
Начинающий
 
Регистрация: 27.05.2009
Сообщения: 100
Репутация: -1277
По умолчанию

Большое спасибо за помошь всем попробую сделать. О результатах напишу
Ответить с цитированием
  #18  
Старый 25.07.2011, 08:30
Zhigalov Zhigalov вне форума
Начинающий
 
Регистрация: 27.05.2009
Сообщения: 100
Репутация: -1277
По умолчанию

Все получилось!

Но на вот такой запрос:
Код:
ADOQuery1.SQL.Add('SELECT convert(varchar(13), [SimpleTime], 120) + ':00', avg(Chann06) FROM Test.dbo.Data_217807_8_0_8 where SimpleTime between :Param1 and :Param2 group by  convert(varchar(13), [SimpleTime], 120) + ':00'')

выводит ошибка на ':00'

[Error] Unit1.pas(46): ')' expected but ':' found
[Error] Unit1.pas(46): Incompatible types: 'Integer' and 'String'

А если просто добавить в квери запрос то все работает.
Где косяк?

Последний раз редактировалось Zhigalov, 25.07.2011 в 08:56.
Ответить с цитированием
  #19  
Старый 25.07.2011, 12:53
Аватар для 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,503
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Внимательно прочти сообщение и внимательно прочти свой код.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию

Последний раз редактировалось M.A.D.M.A.N., 25.07.2011 в 12:58.
Ответить с цитированием
  #20  
Старый 25.07.2011, 12:59
Zhigalov Zhigalov вне форума
Начинающий
 
Регистрация: 27.05.2009
Сообщения: 100
Репутация: -1277
По умолчанию

Цитата:
Сообщение от M.A.D.M.A.N.
Внимательно прочти сообщение и внимательно прочти свой код.

Дак где забыл то? я чет найти не могу.
Ответить с цитированием
  #21  
Старый 25.07.2011, 13:08
Аватар для Viajero
Viajero Viajero вне форума
Активный
 
Регистрация: 14.06.2011
Адрес: РБ
Сообщения: 214
Версия Delphi: Delphi 7 FB 2.5
Репутация: 5849
По умолчанию

Возможно, там внутри запроса надо не ' а '' (не двойная кавычка, о одинарную повторить два раза), иначе компилятор Delphi интерпретирует, как конец запроса.
__________________
- Товарищ прапорщик!!! Остановите поезд!!! - Поезд СТОЙ! РАЗ! ДВА!

Последний раз редактировалось Viajero, 25.07.2011 в 13:22.
Ответить с цитированием
  #22  
Старый 25.07.2011, 13:11
Zhigalov Zhigalov вне форума
Начинающий
 
Регистрация: 27.05.2009
Сообщения: 100
Репутация: -1277
По умолчанию

Цитата:
Сообщение от Viajero
Возможно, там внутри запроса надо не ' а '' (не двойная ковычка, о одинарную повторить два раза), иначе компилятор Delphi интерпретирует, как конец запроса.

Тама одинарная ковычка!
Ответить с цитированием
  #23  
Старый 25.07.2011, 13:21
Аватар для Viajero
Viajero Viajero вне форума
Активный
 
Регистрация: 14.06.2011
Адрес: РБ
Сообщения: 214
Версия Delphi: Delphi 7 FB 2.5
Репутация: 5849
По умолчанию

Внутри строк Delphi кавычки надо повторять, компилятор преобразует в одну и на сервер пойдёт правильный запрос, иначе компилятор интерпретирует одну кавычку, как конец строки.
__________________
- Товарищ прапорщик!!! Остановите поезд!!! - Поезд СТОЙ! РАЗ! ДВА!
Ответить с цитированием
  #24  
Старый 25.07.2011, 13:58
Zhigalov Zhigalov вне форума
Начинающий
 
Регистрация: 27.05.2009
Сообщения: 100
Репутация: -1277
По умолчанию

Не ты не правельно понял в конце там две одинарные ковычки а не одна двойная.
Ответить с цитированием
  #25  
Старый 25.07.2011, 14:56
Аватар для 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,503
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Узри свою ошибку.

одинарные кавычки внутри строки надо писать как 'erwer''fg';
Твой мегазапрос будет вот так выглядеть:
Код:
ADOQuery1.SQL.Add('SELECT convert(varchar(13), [SimpleTime], 120) + '':00'', avg(Chann06) FROM Test.dbo.Data_217807_8_0_8 where SimpleTime between :Param1 and :Param2 group by  convert(varchar(13), [SimpleTime], 120) + '':00''')
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #26  
Старый 25.07.2011, 15:00
Zhigalov Zhigalov вне форума
Начинающий
 
Регистрация: 27.05.2009
Сообщения: 100
Репутация: -1277
По умолчанию

не когда бы не дадумался сам . Спасибо за помошь
Ответить с цитированием
  #27  
Старый 27.07.2011, 12:48
Zhigalov Zhigalov вне форума
Начинающий
 
Регистрация: 27.05.2009
Сообщения: 100
Репутация: -1277
По умолчанию

И новая проблема.

Код:
  ADOQuery1.Close;
  DateTimePicker1.time:=DateTimePicker2.time;
  DateTimePicker3.time:=DateTimePicker4.time;

  ADOQuery1.Parameters.ParamByName('Param1').Value:=DateTimePicker1.DateTime;
  ADOQuery1.Parameters.ParamByName('Param2').Value:=DateTimePicker3.DateTime;

  ADOQuery1.SQL.Add('SELECT convert(varchar(13), [SimpleTime], 120) + '':00'' + '':00'', avg(Chann06) FROM Test.dbo.Data_217807_8_0_8 where SimpleTime between :Param1 and :Param2 group by  convert(varchar(13), [SimpleTime], 120) + '':00'' + '':00''');
  ADOQuery1.Open;

При повтороном нажатии на кнопку выдается следущее сообщение:

Код:
Неправильно определен объект Parameter. Предоставлены несовместимые или неполные данные
Ответить с цитированием
  #28  
Старый 27.07.2011, 14:42
Аватар для 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,503
Версия Delphi: XE10
Репутация: выкл
По умолчанию

А догадайся почему.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #29  
Старый 27.07.2011, 14:55
Zhigalov Zhigalov вне форума
Начинающий
 
Регистрация: 27.05.2009
Сообщения: 100
Репутация: -1277
По умолчанию

Параметры может как то обнулять надо. Чет даже не знаю.
Ответить с цитированием
  #30  
Старый 27.07.2011, 15:39
Zhigalov Zhigalov вне форума
Начинающий
 
Регистрация: 27.05.2009
Сообщения: 100
Репутация: -1277
По умолчанию

Наверное надо ADOQuery1.text а не ADOQuery1.add и параметры патом определять или как то еще?
Ответить с цитированием
Ответ



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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources", 2004-2019

ВКонтакте   Facebook   Twitter