Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/40: Рейтинг темы: голосов - 40, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 09.12.2013
Сообщений: 21
1

ADOQuery1: Parameter 'Месяц' not found

20.12.2014, 18:54. Показов 7852. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Делаю запрос через adoquery, который должен выводить сумму выручки за месяц. Вот сам запрос:
SQL
1
2
3
SELECT SUM(DATEDIFF(HH, dbo.Заказ.[Дата выдачи автомобиля], dbo.Заказ.[Дата возврата автомобиля]) * CONVERT(money, dbo.Автомобиль.[Цена за час])) AS [Выручка за месяц]
FROM dbo.Автомобиль INNER JOIN dbo.Заказ ON dbo.Автомобиль.[Код автомобиля] = dbo.Заказ.[Код автомобиля]
WHERE        (MONTH(dbo.Заказ.[Дата возврата автомобиля]) = '10')
Я хочу чтобы вместо цифры 10, номер месяца считывался с edit. Вразумительного решения найти не могу, но как я понял нужно использовать параметр в adoquery. Создал параметр, прописал код для кнопки:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
procedure TForm3.Button1Click(Sender: TObject);
begin
adoquery1.Active := false ;
adoquery1.SQL.Clear;
adoquery1.SQL.Text := ('SELECT SUM(DATEDIFF(HH, dbo.Заказ.[Дата выдачи автомобиля],'+
'dbo.Заказ.[Дата возврата автомобиля]) * CONVERT(money, dbo.Автомобиль.[Цена за час]))'+
'AS [Выручка за месяц] FROM dbo.Автомобиль INNER JOIN dbo.Заказ ON'+
'dbo.Автомобиль.[Код автомобиля] = dbo.Заказ.[Код автомобиля]');
adoquery1.Parameters.ParamByName('Месяц').Value := (edit1.Text) ;
adoquery1.SQL.Add('WHERE(MONTH(dbo.Заказ.[Дата возврата автомобиля])=:Месяц');
adoquery1.Active := true ;
end;
Но мне выдает ошибку, типа этот параметр не найден: Проект вызвал исключение класса EDataBaseError с сообщением 'ADOQuery1: Parameter 'Месяц' not found'.
Лазил в интернете, вразумительного ответа не увидел, помогите пожалуйста.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.12.2014, 18:54
Ответы с готовыми решениями:

ADOQuery1: Parameter 'name' not found - Delphi БД
Здравствуйте, у меня такая проблема. Создаю что-то типа авторизации в программе. Должно работать...

Ошибка 'ADOQuery1: Parameter 'id_sotr_' not found'
Всем привет! Делаю запрос через adoquery, который должен выводить записи из таблицы в dbgrid исходя...

ADOQuery1 feild ' ' not found
Всем доброго времени суток! не могу разобраться, выдает ошибку при добавление(см. 1 скрин) Но...

parameter not found
Не знаю что творть.. если вот так жестоко на меня ругется. На форме как вы уже поняли 5...

5
пофигист широкого профиля
4733 / 3167 / 859
Регистрация: 15.07.2013
Сообщений: 18,252
20.12.2014, 21:00 2
Цитата Сообщение от Klaber Посмотреть сообщение
Но мне выдает ошибку, типа этот параметр не найден
Естественно. На момент присвоения значения этому параметру в тексте запроса его еще нет.
1
0 / 0 / 0
Регистрация: 09.12.2013
Сообщений: 21
20.12.2014, 21:18  [ТС] 3
Как это нет? Я создал его вручную через свойства. Если нет, то объясните пожалуйста как надо сделать?
0
1074 / 987 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
20.12.2014, 23:07 4
Не надо создавать параметр вручную. ADOQuery прекрасно создаст его самостоятельно.
Внимательнее надо читать то что вам пишут, советуют.
Во втором фрагменте кода поменяйте 9-ю и 10-ю строки местами и пропавший параметр найдется.
1
0 / 0 / 0
Регистрация: 09.12.2013
Сообщений: 21
20.12.2014, 23:11  [ТС] 5
Спасибо за помощь, но я уже понял, что для моей задачи ( считать номер месяца с эдита ) не нужен был параметр. Тему можно запиливать )
0
пофигист широкого профиля
4733 / 3167 / 859
Регистрация: 15.07.2013
Сообщений: 18,252
21.12.2014, 03:07 6
delete
0
21.12.2014, 03:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.12.2014, 03:07
Помогаю со студенческими работами здесь

Parameter naim not found
Нужно чтобы данные, записанные в ячейке stringgrid сохранялись в бд Acess. Никак не могу доделать,...

Ошибка: "adoquery1.field 'id_work' not found"
На одной форме есть два grida. По сути один grid должен быть главным,а второй...

Ошибка: 'FDQuery: Parameter 'edit.Text' not found'
Мир всем и привет ! помогите пожалуйста раньше я сделал через ADOQuery не было проблем, и в чем...

Ошибка AdoQuery1: Parameter 'param1' not found
вот код мне нужна добавлять дание в таблицу. void __fastcall TForm6::Button1Click(TObject *Sender)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru