Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
2184 / 1254 / 143
Регистрация: 28.04.2010
Сообщений: 4,592
1

Запрос в access выполняется, а в delphi нет

06.05.2014, 22:09. Показов 744. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть запрос в делфи ругается "отсутствует значение для одного или нескольких требуемых параметров"
Этот же запрос в access выполняется. Причем если убрать группировку, запрос тоже выполняется, что не так?

За название таблиц в кирилице особо не ругайте )

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
DataModule2.ADOQuery.SQL.Clear;
DataModule2.ADOQuery.SQL.Add('SELECT [Наименование Услуги/ПО], ID, sum([Заказы табличная часть].Количество) as Количество, sum(tmp.Стоимость * tmp.Количество) as Сумма from');
DataModule2.ADOQuery.SQL.Add('(SELECT Заказы.[Дата заказа], ПО.[Наименование ПО] as [Наименование Услуги/ПО], ПО.ID as ID, [Заказы табличная часть].Количество, ПО.Стоимость ' +
                             'FROM Заказы INNER JOIN (ПО INNER JOIN [Заказы табличная часть] ON ПО.ID = [Заказы табличная часть].ПО) ON Заказы.ID = [Заказы табличная часть].Заказ');
DataModule2.ADOQuery.SQL.Add('union ALL');
DataModule2.ADOQuery.SQL.Add('SELECT Заказы.[Дата заказа], Услуги.[Наименование Услуги] as [Наименование Услуги/ПО], Услуги.ID as ID, [Заказы табличная часть].Количество, Услуги.Стоимость ' +
                             'FROM Заказы INNER JOIN (Услуги INNER JOIN [Заказы табличная часть] ON Услуги.ID = [Заказы табличная часть].Услуга) ON Заказы.ID = [Заказы табличная часть].Заказ)');
DataModule2.ADOQuery.SQL.Add('where Заказы.[Дата заказа] between :DateBegin and :DateEnd');
DataModule2.ADOQuery.SQL.Add('group by [Наименование Услуги/ПО], ID');
 
DataModule2.ADOQuery.Parameters.ParseSQL(DataModule2.ADOQuery.SQL.Text, True);
DataModule2.ADOQuery.Parameters.ParamByName('DateBegin').Value := DateBegin.Date;
DataModule2.ADOQuery.Parameters.ParamByName('DateEnd').Value := DateEnd.Date;
 
DataModule2.ADOQuery.Open;
DataModule2.ADOQuery.First;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.05.2014, 22:09
Ответы с готовыми решениями:

Не выполняется запрос к БД Access
Не выполняется запрос Insert к БД Access, причем без ошибок, запись просто не добавляется. Ошибок...

Не выполняется 'запрос с условием' из бд MS Access
Есть некая бд, содержащая таблицу "Люди": Я выполняю запрос, в котором описывается, что...

Не выполняется запрос на обновление в Access
Для изучения Access мне необходимо выполнить ряд лабораторных.Никаких вопросов по созданию базы у...

Запрос к MySQL. Через WorkBench запрос выполняется, а через клиента - нет
Добрый день! Помогите с запросом! string CommandText = "SELECT * FROM sensors WHERE...

2
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32977 / 21288 / 8175
Регистрация: 22.10.2011
Сообщений: 36,565
Записей в блоге: 8
06.05.2014, 22:36 2
Пробел перед group в 9-ой строке можно было догадаться поставить? У тебя же сливаются параметр ateEnd и слово group...
0
2184 / 1254 / 143
Регистрация: 28.04.2010
Сообщений: 4,592
07.05.2014, 00:04  [ТС] 3
Если бы я написал так:
Delphi
1
2
DataModule2.ADOQuery.SQL.Add('where Заказы.[Дата заказа] between :DateBegin and :DateEnd' +
'group by [Наименование Услуги/ПО], ID');
Тогда да.
Но у меня же
Delphi
1
2
DataModule2.ADOQuery.SQL.Add('where Заказы.[Дата заказа] between :DateBegin and :DateEnd');
DataModule2.ADOQuery.SQL.Add('group by [Наименование Услуги/ПО], ID');
там пробел не нужен, это уже новая строка

Добавлено через 12 минут
все разобрался, у меня остался tmp в запросе
sum(tmp.Стоимость * tmp.Количество)

посл моих эксперементов )
0
07.05.2014, 00:04
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.05.2014, 00:04
Помогаю со студенческими работами здесь

Не выполняется подготовленный запрос (PHP PDO ODBC + MS Access)
Добрый день Если пишу (глупо, конечно, получается, но всё же. так я проверял работает запрос...

Запрос выполняется или нет при изменении кода PHP?
Я запутался. Написал запрос на удаление строки из таблицы используя PHP. Строка удалилась....

SQL-запрос в Delphi и в Access один и тот же, но в Delphi не работает
ри обращение к базе в Access я использую код: with ADOQueryMain do begin Active:=false;...

Запрос из Access в Delphi
Помогите создать запрос с помощью ADOQuery!!! Имееются 4 связанные таблицы из access: с полями:...


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

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