Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Возврат таблицы из процедуры в приложение. (абыскалса)  [new]
Yola
Member

Откуда: Ukrainia
Сообщений: 615
go
create procedure traceChild(@child_id int)
as
begin
	
	declare @i int
	select @i = 0
	create table #trace ([order] int identity, node_id int)

	declare @oldchild_id int
	select @oldchild_id = 0
	while @child_id <> @oldchild_id	
	begin
		insert into #trace (node_id) values (@child_id)
--		print @child_id
		select @oldchild_id = @child_id
		select @child_id = conundrumType_id from ConundrumType
			where conundrumType_id in (
				select parentType_id 
				from ConundrumType 
				where conundrumType_id = @child_id
			)
	end
	select * from #trace
end
go

drop table #extrace
create table #extrace ([order] int identity, node_id int)
--insert #extrace exec traceChild 3
select node_id from #extrace
так всё работает отлично, разве что результат не выдает. но если разкоментить инсертик, то выдаёт такую бяку
SQL Server
Server: Msg 213, Level 16, State 7, Procedure traceChild, Line 23
Insert Error: Column name or number of supplied values does not match table definition.

Что он имеет в виду?!
А нуно мне все это вернуть в клиентскую прогу..
12 ноя 09, 13:11    [7919901]     Ответить | Цитировать Сообщить модератору
 Re: Возврат таблицы из процедуры в приложение. (абыскалса)  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Identity из определения #extrace если убрать, что скажет?

Сообщение было отредактировано: 12 ноя 09, 13:26
12 ноя 09, 13:14    [7919936]     Ответить | Цитировать Сообщить модератору
 Re: Возврат таблицы из процедуры в приложение. (абыскалса)  [new]
Anddros
Member

Откуда:
Сообщений: 1077
Yola
create table #extrace ([order] int identity, node_id int)

уберите нафиг
12 ноя 09, 13:14    [7919941]     Ответить | Цитировать Сообщить модератору
 Re: Возврат таблицы из процедуры в приложение. (абыскалса)  [new]
Glory
Member

Откуда:
Сообщений: 104760
Yola

так всё работает отлично, разве что результат не выдает. но если разкоментить инсертик, то выдаёт такую бяку
SQL Server
Server: Msg 213, Level 16, State 7, Procedure traceChild, Line 23
Insert Error: Column name or number of supplied values does not match table definition.

Что он имеет в виду?!
А нуно мне все это вернуть в клиентскую прогу..

Ну так сколько полей у вас возвращает просто exec traceChild 3 ?
12 ноя 09, 13:18    [7919985]     Ответить | Цитировать Сообщить модератору
 Re: Возврат таблицы из процедуры в приложение. (абыскалса)  [new]
Yola
Member

Откуда: Ukrainia
Сообщений: 615
Ура! Ура! Спасиба! Работает!

А, вообще-то, балина, мог бы и сам догадаться, шо с айдентити не вставит.
12 ноя 09, 16:48    [7921833]     Ответить | Цитировать Сообщить модератору
 Re: Возврат таблицы из процедуры в приложение. (абыскалса)  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Yola
Ура! Ура! Спасиба! Работает!

А, вообще-то, балина, мог бы и сам догадаться, шо с айдентити не вставит.
Ну почему же не вставит?!
insert #extrace(node_id) exec traceChild 3
12 ноя 09, 17:12    [7921962]     Ответить | Цитировать Сообщить модератору
 Re: Возврат таблицы из процедуры в приложение. (абыскалса)  [new]
Yola
Member

Откуда: Ukrainia
Сообщений: 615
iap,
кстати нет, выдает ту же ошибку(

но меня тут другое осинило. а как же мне получить это с клиента. выходит клиент должен запрашивать таким образом
drop table #extrace
create table #extrace ([order] int, node_id int)
insert #extrace exec traceChild 3
select * from #extrace
как-то не красиво. Можно ли сделать как-то так, чтобы клиент делал простой запрос?

и второе, можно ли как-то определить наличие временной таблицы. не уверен, что на хостинге мне дадут лазить самому в тмп бд, да и название там с каким-то непонятным окончаием..
12 ноя 09, 17:37    [7922101]     Ответить | Цитировать Сообщить модератору
 Re: Возврат таблицы из процедуры в приложение. (абыскалса)  [new]
Glory
Member

Откуда:
Сообщений: 104760
Почему клиент сразу не может выполнить exec traceChild 3 ?
12 ноя 09, 17:46    [7922163]     Ответить | Цитировать Сообщить модератору
 Re: Возврат таблицы из процедуры в приложение. (абыскалса)  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Yola
iap,
кстати нет, выдает ту же ошибку(
Прежде чем сюда написать, я у себя проверил - работает.
Правда, SQL2008, но странно как-то.
Glory
Почему клиент сразу не может выполнить exec traceChild 3 ?
+100
Я тоже удивляюсь. Никогда никаких проблем не возникало.
Уже вторая такая тема сегодня!
12 ноя 09, 17:54    [7922212]     Ответить | Цитировать Сообщить модератору
 Re: Возврат таблицы из процедуры в приложение. (абыскалса)  [new]
Yola
Member

Откуда: Ukrainia
Сообщений: 615
Glory
Почему клиент сразу не может выполнить exec traceChild 3 ?
нуб, шо поделать))

iap
Прежде чем сюда написать, я у себя проверил - работает.
Правда, SQL2008, но странно как-то.
я тож у себя проверил)) у меня 2000..
12 ноя 09, 18:04    [7922267]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить