powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Переменные в сохраненной процедуре
16 сообщений из 16, страница 1 из 1
Переменные в сохраненной процедуре
    #32346053
Vitaly223
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В Аксессе создаю сохраненную процедуру с текстом
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
SELECT     A.idClient, A.AllProd, B.DayProd
FROM         (SELECT     idClient, SUM(IsNUll(SumPr,  0 )) AS AllProd
                       FROM          TDokPr
                       WHERE      DatePr < @ДатаТек
                       GROUP BY idClient) A LEFT OUTER JOIN
                          (SELECT     idClient, SUM(SumPr) AS DayProd
                            FROM          TDokPr
                            WHERE      DatePr = @ДатаТек
                            GROUP BY idClient) B ON A.idClient = B.idClient

Простая процедура выдает продажи каждому клиенту до текущего дня и в текущий день. При запуске выходит сообщение "Ошибка ADO: must declare the variable '@ДатаТек'"
Раньше писал процедуры и переменные объявлялись автоматически. В чем дело?
...
Рейтинг: 0 / 0
Переменные в сохраненной процедуре
    #32346123
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
После SELECT:
(@датаТек ЗдесьТипПараметра)
А ошибка читается как "Требуется объявление параметра ДатаТек". Все логично.
...
Рейтинг: 0 / 0
Переменные в сохраненной процедуре
    #32346151
Vitaly223
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо. А точнее можно указать где писать (@ДатаТек Date)?
...
Рейтинг: 0 / 0
Переменные в сохраненной процедуре
    #32346158
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SELECT A.idClient, A.AllProd, B.DayProd
Вот здесь
FROM
...
Рейтинг: 0 / 0
Переменные в сохраненной процедуре
    #32346167
Vitaly223
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
SELECT     A.idClient, A.AllProd, B.DayProd (@ДатаТек Date)
FROM         (SELECT     idClient, SUM(IsNUll(SumPr,  0 )) AS AllProd
                       FROM          TDokPr
                       WHERE      DatePr < @ДатаТек
                       GROUP BY idClient) A LEFT OUTER JOIN
                          (SELECT     idClient, SUM(SumPr) AS DayProd
                            FROM          TDokPr
                            WHERE      DatePr = @ДатаТек
                            GROUP BY idClient) B ON A.idClient = B.idClient


Не работает. Та же ошибка...
...
Рейтинг: 0 / 0
Переменные в сохраненной процедуре
    #32346176
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Create procedure PPPP
as

Declare @D as SmallDate или Date

Select ...
...
Рейтинг: 0 / 0
Переменные в сохраненной процедуре
    #32346181
Хам трамвайный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
графический конструктор
для ХП хорош,
но он тоже не всесилен.
вложенные выражения он
уже не сможет расшифровать.
перейди в режим ручной
правки и там напиши
все
...
Рейтинг: 0 / 0
Переменные в сохраненной процедуре
    #32346187
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй название английское, а не русское.
...
Рейтинг: 0 / 0
Переменные в сохраненной процедуре
    #32346218
Vitaly223
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все работает при создании новой процедуры (по Виктору Сенину).
Аксесс воспринимает тип Datetime. На тип Date выдает ошибку. Но это не важно.

Процедура при выполнении запрашивала значение ДатаТек, теперь она выполняется без запроса у пользователя даты. Почему так?
...
Рейтинг: 0 / 0
Переменные в сохраненной процедуре
    #32346226
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приведи полный текст процедуры и тип поля DatePr. А так же как энту процедуру выполняешь
...
Рейтинг: 0 / 0
Переменные в сохраненной процедуре
    #32346249
Vitaly223
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Senin Victor
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
ALTER procedure PPPP as
Declare @ДатаТек as DateTime
SELECT     A.idClient, A.AllProd, B.DayProd
FROM         (SELECT     idClient, SUM(IsNUll(SumPr,  0 )) AS AllProd
                       FROM          TDokPr
                       WHERE      DatePr <= @ДатаТек
                       GROUP BY idClient) A LEFT OUTER JOIN
                          (SELECT     idClient, SUM(SumPr) AS DayProd
                            FROM          TDokPr
                            WHERE      DatePr = @ДатаТек
                            GROUP BY idClient) B ON A.idClient = B.idClient

Тип поля DatePr - datetime
Процедура пока запускается вручную на странице запросы окна базы данных. Выдает поля без записей, не спрашивая дату.
Сейчас с помощью мастера создал табличную форму, где источник записей - процедура PPPP. Указал входные параметры - @ДатаТек=Forms!FReport!ДатаТек (Поле ДатаТек на форме FReport). Аксесс ругается - неправильный параметр запроса '@ДатаТек'
...
Рейтинг: 0 / 0
Переменные в сохраненной процедуре
    #32346279
Хам трамвайный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
declare убери
...
Рейтинг: 0 / 0
Переменные в сохраненной процедуре
    #32346281
Хам трамвайный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
@ДатаТек DateTime
...
Рейтинг: 0 / 0
Переменные в сохраненной процедуре
    #32346287
Vitaly223
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо! Все работает.
...
Рейтинг: 0 / 0
Переменные в сохраненной процедуре
    #32346339
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Спасибо! Все работает.

Про то, что надо сделать @ДатаТек входным параметером забыл?
...
Рейтинг: 0 / 0
Переменные в сохраненной процедуре
    #32347056
Фотография AlexJuice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы еще добавил
set nocount on
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Переменные в сохраненной процедуре
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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