![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
output-параметры в рекурсивных выборках [MSSQL]
Ega23 © (2005-08-10 16:49:00)Есть такая простенькая процедура:
if exists (select * from sysobjects where id = object_id(N'[S_TempProc]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [S_TempProc]
GO
CREATE PROCEDURE S_TempProc
@Count int=0,
@OutMess varchar(2000) ='' output
As
Declare @Result int;
Select @Result=@Count+1;
Select @OutMess=@OutMess+';'+Cast(@Count as varchar(3));
if @Count<5
exec @Result=S_TempProc @Count=@Result, @OutMess=@OutMess output
Return(@Result);
go
Есть такой простенький скрипт её вызова:
Declare
@ss varchar(2000)
exec S_TempProc @Count=0, @OutMess=@ss output;
select X=@ss
Почему на выходе всё время NULL???
Ega23 (2005-08-10 17:13:00) [1]Оп-па.... Как же это я так проглядел-то!!!!
Пора домой...
Спасибо!
MOA (2005-08-10 17:08:00) [2]Любая операция с NULL даст NULL. В том числе и
@OutMess=@OutMess+';'+Cast(@Count as varchar(3))
Т.е. при вызове параметру @OutMess нужно присвоить хотя бы пустую строку:
Declare
@ss varchar(2000)
SET @ss=''
Удачи!