Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Переменные в сохраненной процедуре / 16 сообщений из 16, страница 1 из 1
08.12.2003, 10:23
    #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
08.12.2003, 11:04
    #32346123
zz
zz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переменные в сохраненной процедуре
После SELECT:
(@датаТек ЗдесьТипПараметра)
А ошибка читается как "Требуется объявление параметра ДатаТек". Все логично.
...
Рейтинг: 0 / 0
08.12.2003, 11:18
    #32346151
Vitaly223
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переменные в сохраненной процедуре
Спасибо. А точнее можно указать где писать (@ДатаТек Date)?
...
Рейтинг: 0 / 0
08.12.2003, 11:24
    #32346158
zz
zz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переменные в сохраненной процедуре
SELECT A.idClient, A.AllProd, B.DayProd
Вот здесь
FROM
...
Рейтинг: 0 / 0
08.12.2003, 11:31
    #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
08.12.2003, 11:36
    #32346176
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переменные в сохраненной процедуре
Create procedure PPPP
as

Declare @D as SmallDate или Date

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

Процедура при выполнении запрашивала значение ДатаТек, теперь она выполняется без запроса у пользователя даты. Почему так?
...
Рейтинг: 0 / 0
08.12.2003, 12:02
    #32346226
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переменные в сохраненной процедуре
Приведи полный текст процедуры и тип поля DatePr. А так же как энту процедуру выполняешь
...
Рейтинг: 0 / 0
08.12.2003, 12:17
    #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
08.12.2003, 12:39
    #32346279
Хам трамвайный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переменные в сохраненной процедуре
declare убери
...
Рейтинг: 0 / 0
08.12.2003, 12:40
    #32346281
Хам трамвайный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переменные в сохраненной процедуре
@ДатаТек DateTime
...
Рейтинг: 0 / 0
08.12.2003, 12:44
    #32346287
Vitaly223
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переменные в сохраненной процедуре
Спасибо! Все работает.
...
Рейтинг: 0 / 0
08.12.2003, 13:11
    #32346339
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переменные в сохраненной процедуре
>Спасибо! Все работает.

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


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