|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#16
|
||||
|
||||
Цитата:
Перед тем как у тебя будет выполнен запрос напиши следующее: Код:
DateTimePicker1.time:=DateTimePicker2.time DateTimePicker3.time:=DateTimePicker4.time ADOQuery1.Parameters.ParamByName('Param1').Value:=DateTimePicker1.DateTime; ADOQuery1.Parameters.ParamByName('Param2').Value:=DateTimePicker3.DateTime; и вот это прописать в своем скрипте where SimpleTime >= :Param1 and SimpleTime < :Param2 |
#17
|
|||
|
|||
Большое спасибо за помошь всем попробую сделать. О результатах напишу
|
#18
|
|||
|
|||
Все получилось!
Но на вот такой запрос: Код:
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
|
||||
|
||||
Внимательно прочти сообщение и внимательно прочти свой код.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию Последний раз редактировалось M.A.D.M.A.N., 25.07.2011 в 12:58. |
#20
|
|||
|
|||
Цитата:
Дак где забыл то? я чет найти не могу. |
#21
|
||||
|
||||
Возможно, там внутри запроса надо не ' а '' (не двойная кавычка, о одинарную повторить два раза), иначе компилятор Delphi интерпретирует, как конец запроса.
- Товарищ прапорщик!!! Остановите поезд!!! - Поезд СТОЙ! РАЗ! ДВА! Последний раз редактировалось Viajero, 25.07.2011 в 13:22. |
#22
|
|||
|
|||
Цитата:
Тама одинарная ковычка! |
#23
|
||||
|
||||
Внутри строк Delphi кавычки надо повторять, компилятор преобразует в одну и на сервер пойдёт правильный запрос, иначе компилятор интерпретирует одну кавычку, как конец строки.
- Товарищ прапорщик!!! Остановите поезд!!! - Поезд СТОЙ! РАЗ! ДВА! |
#24
|
|||
|
|||
Не ты не правельно понял в конце там две одинарные ковычки а не одна двойная.
|
#25
|
||||
|
||||
Узри свою ошибку.
одинарные кавычки внутри строки надо писать как '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
|
|||
|
|||
не когда бы не дадумался сам . Спасибо за помошь
|
#27
|
|||
|
|||
И новая проблема.
Код:
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
|
||||
|
||||
А догадайся почему.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#29
|
|||
|
|||
Параметры может как то обнулять надо. Чет даже не знаю.
|
#30
|
|||
|
|||
Наверное надо ADOQuery1.text а не ADOQuery1.add и параметры патом определять или как то еще?
|