powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вызов пользовательской функции из пользовательской функции
7 сообщений из 7, страница 1 из 1
Вызов пользовательской функции из пользовательской функции
    #40123511
Strength Class
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.

Мне необходимо для вызова из access написать компактный вызов функции, зависящий от других функций. Что-то такого вида
Код: sql
1.
exec dbo.EvalStGrade @idLabRes, @idND, dbo.CheckMech(@decSig,  @idTypeProduct, @idND, NULL), dbo.CheckMech(@decTverd, @idTypeProduct, @idND, NULL)



функция EvalStGrade зависит от CheckMech. На такой вызов ошибка синтаксиса.


При раздельном вызове все работает:
Код: sql
1.
2.
3.
4.
select @bSig = dbo.CheckMech(@decSig,  @idTypeProduct, @idND, NULL);
select @bTverd = dbo.CheckMech(@decTverd, @idTypeProduct, @idND, NULL);

exec dbo.EvalStGrade @idLabRes, @idND, @bSig, @bTverd



Во всех остальных случаях ошибка синтаксиса:

Код: sql
1.
2.
3.
exec dbo.EvalStGrade @idLabRes, @idND, CheckMech(@decSig,  @idTypeProduct, @idND, NULL), CheckMech(@decTverd, @idTypeProduct, @idND, NULL)

exec dbo.EvalStGrade @idLabRes, @idND, CheckMech @decSig,  @idTypeProduct, @idND, NULL, CheckMech@decTverd, @idTypeProduct, @idND, NULL



Подскажите, пожалуйста, в чем может быть ошибка?
...
Рейтинг: 0 / 0
Вызов пользовательской функции из пользовательской функции
    #40123512
Strength Class,

А почему не выполнять функции сохраняя их значения в переменные, а потом эти переменные подставлять в процедуру?
Если Access не умеет тексты скриптов посылать, то что мешает написать процедуру EvalStGrade_0 ее вызывать из Access , а в ней уже раздельно выполнять функцию CheckMech и процедуру EvalStGrade
...
Рейтинг: 0 / 0
Вызов пользовательской функции из пользовательской функции
    #40123514
Strength Class
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господин Уэф!,
будет много запросов. В примере у меня 3. На самом деле их будет 9. Хотелось только 1 запрос.
...
Рейтинг: 0 / 0
Вызов пользовательской функции из пользовательской функции
    #40123515
uaggster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Strength Class

Подскажите, пожалуйста, в чем может быть ошибка?

В том, что оно так не работает.
И не должно.
Все параметры хранимых процедур должны быть статическими значениями, определенными к моменту вызова.
Так что определяйте переменные и делайте exec. По другому никак.
(Для упоротых можно заморочиться с динамическим sql, но это путь в никуда :-) )
...
Рейтинг: 0 / 0
Вызов пользовательской функции из пользовательской функции
    #40123517
Strength Class
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
uaggster,
спасибо. Понятно. Почему тогда в таком виде функция вызывается внутри представления? Там допустимо, что аргументы по ходу вычисляются?
...
Рейтинг: 0 / 0
Вызов пользовательской функции из пользовательской функции
    #40123536
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Strength Class
Почему тогда в таком виде функция вызывается внутри представления? Там допустимо, что аргументы по ходу вычисляются?
В запросах и представлениях допустимо, в аргументах функции допустимо, в аргументах процедуры недопустимо. By design.
...
Рейтинг: 0 / 0
Вызов пользовательской функции из пользовательской функции
    #40123543
Strength Class
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvg,
благодарю.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вызов пользовательской функции из пользовательской функции
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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