powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Помогите справиться с запросом!!! Пожалуйста!!!
14 сообщений из 14, страница 1 из 1
Помогите справиться с запросом!!! Пожалуйста!!!
    #32176978
Фотография drbond
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть такой запрос, который призван суммировать записи в таблице Prihod и добавлять их таблицу итогов, назовём её Oborot. Отбор записей в запросе производится по значению даты введённой пользователем. Нужно получить сумму стоимости товаров по датам меньшим введённого значения. Текст запроса:
Код: plaintext
1.
2.
3.
4.
adoquery2.SQL.Clear;
adoquery2.SQL.Add('insert into Oborot(Summa) select SUM(Kolvo*Cena) from Prihod');
adoquery2.SQL.Add('where Prihod.DataPostavki < #19/05/2003#');
adoquery2.Active:=true;
adoquery2.ExecSQL;


При попытке выполнения мне пишет "Текущий проводник не поддерживает возврат нескольких наборов записей в результате одной операции."
Группировать по полю Prihod.DataPostavki пробовал. Всё равно та же ошибка.
В чём я здесь не прав? (БД MS Access, кстати в самом Access запрос подобного вида прокатывает на "ура").
...
Рейтинг: 0 / 0
Помогите справиться с запросом!!! Пожалуйста!!!
    #32176981
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот это вот убери adoquery2.Active:=true; , и почитай про разницу между открытием локального курсора и выполнением запроса, не возвращающего данных.
...
Рейтинг: 0 / 0
Помогите справиться с запросом!!! Пожалуйста!!!
    #32177023
Фотография drbond
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Убрал. Запрос работает. Но! Он добавляет пустые записи. Хотя в заданном диапазоне дат в таблице имеются данные и по полю Kolvo и по полю Cena.
А каким другим способом или запросом можно выполнить вышеописанную задачу?
...
Рейтинг: 0 / 0
Помогите справиться с запросом!!! Пожалуйста!!!
    #32177041
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да запрос то по сути правильный. Разберись, может дату надо по другому передавать. Или попробуй оформить дату в виде параметра, тогда ADO само разбереться в каком формате даты передавать. Попробуй убрать #, и заменить их на '.
...
Рейтинг: 0 / 0
Помогите справиться с запросом!!! Пожалуйста!!!
    #32177057
Фотография drbond
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Убрал #, заменил на ' Всё равно пустые значения.
...
Рейтинг: 0 / 0
Помогите справиться с запросом!!! Пожалуйста!!!
    #32177066
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если так дату передать '5/19/2003'. Почему так предлагаю, работал через ADO тока с сиквелом. Хрен его знает, как аксесу надо дату подсовывать, раз он решеток не принимает. Ну и убедись, конечно, что сам запрос NULL не возвращает.
...
Рейтинг: 0 / 0
Помогите справиться с запросом!!! Пожалуйста!!!
    #32177071
Фотография GoGi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй сделать отдельно выборку
select SUM(Kolvo*Cena) from Prihod where Prihod.DataPostavki < #19/05/2003# и посмотри, что в итоге получается. Вероятнее всего, выборка не возвращаяет данные
...
Рейтинг: 0 / 0
Помогите справиться с запросом!!! Пожалуйста!!!
    #32177085
Фотография drbond
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поставил в запрос ради эксперимента вместо значения даты Date(). Запрос выполнился. Значит всё дело в передаче параметра даты. (Вернее в её формате).
...
Рейтинг: 0 / 0
Помогите справиться с запросом!!! Пожалуйста!!!
    #32177088
Фотография drbond
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в формате 5/19/2003 тоже выполнился, причём как надо. Теперь одна проблема преобразовать дату введённую пользователем в формате 19.05.2003 в 5/19/2003. Как?
...
Рейтинг: 0 / 0
Помогите справиться с запросом!!! Пожалуйста!!!
    #32177089
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы рекомендовал использовать параметризированный запрос. И зачем Clear, Add. Положил TADOQuery, установил свойства, дальше используй, только меняя параметры.
...
Рейтинг: 0 / 0
Помогите справиться с запросом!!! Пожалуйста!!!
    #32177128
Фотография GoGi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А у тебя дату водят ручками или выбирают как-то?
...
Рейтинг: 0 / 0
Помогите справиться с запросом!!! Пожалуйста!!!
    #32177204
Фотография drbond
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дату вводят ручками. Но для нашего пользователя вводить дату в формате месяц/число/год непривычно. Будут (обязательно!) ошибки и лишние разборки. так что проще оставить им ввод даты в привычном dd.mm.yy, а дальше преобразовать как надо для запроса.
...
Рейтинг: 0 / 0
Помогите справиться с запросом!!! Пожалуйста!!!
    #32177479
Фотография GoGi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А у тебя тип поля с датами какой - DATE?
...
Рейтинг: 0 / 0
Помогите справиться с запросом!!! Пожалуйста!!!
    #32179399
Фотография drbond
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо большое всем за помощь! Проблема решилась очень просто. Использованием функции FormatDateTime. Получаем от пользователя дату в формате dd.mm.yy, затем преобразуем её в #mm/dd/yyyy# и всё. Отбор по дате проходит без проблем.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Помогите справиться с запросом!!! Пожалуйста!!!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]