![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Возврат значений из скрипта. [D5, MSSQL]
sd © (2002-02-06 07:47:00)У нас в MSSQL есть скрипт типа:
SET @Text = "SELECT MAX() FROM "+table
EXEC sp_executesql @Text
Как вернуть значение полученное таким скриптом в переменную? Пытались через переменную типа:
DECLARE @a int
SET @Text = "SELECT @res = MAX() FROM "+table
SET @Param = "@res int"
EXEC sp_executesql @Text, @Param, @res = @a
Нифига она возвращать не желает... Естественно мы ее добили через временную таблицу, но интересно, а другого пути нет?
dmitryK (2002-02-06 11:59:00) [1]Sorry, я кажется не совсем правильно понял вопрос.
если ты имел ввиду, как написать скрипт на SQL в котором необходимо с помощью одного запроса получать данные из разных таблиц, то это делается проще:
EXEC ("SELECT @res = MAX() FROM " + @table)
@table - строковая переменная, в которой находится название таблицы.
-------------------------------
но вообещ-то, хотелось бы, что бы сразу проблема была описана более четко.
dmitryK (2002-02-06 10:45:00) [2]Чисто теоретически можно попробовать сделать так (но получиться или нет я не знаю, и самому интересен результат)
в конец скрипта добавить такую строчку:
SELECT @res
и затем открыть с помощьюOpen
По идее, это единственная команда возвращающая набор данных в твоем скрипте, и возможно получится. В худшем случае - просто произойдет ошибка. Но как говорится попытка не пытка :)
Если рискнешь попробовать этот вариант - сообщи результаты пжлст.
TSV (2002-02-06 10:22:00) [3]Напиши свою хранимую процедуру с входными и выходными параметрами и все получится. :-)
Удачи.
Alex-A (2002-02-06 09:52:00) [4]а так попробуй:
-"-
DECLARE @RES INT
EXEC sp_executesql @Text, N"@RES INT OUT", @RES=@RES
sd (2002-02-06 08:46:00) [5]Спасибо конечно, но меня интересует как полученное таким образом значение запихать в переменную? Другими словами рез-тат я получаю это факт, но как его сохранить и использовать далее?
Gregory (2002-02-06 08:29:00) [6]Попробуй так:
SET @Text = "SELECT MAX() FROM "+table
EXEC( @Text )