Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 SSIS 2005 Ole Db Command OUTPUT параметры  [new]
rainebove2
Member

Откуда: Москва
Сообщений: 34
Доброе время суток!
Подскажите как вернуть output параметр при вызове хранимой процедуры через ole db Command.
Процедура например такая:
CREATE PROCEDURE [dbo].[usp_Tets]	@ParamIn int
					,@ParamOut int output 
AS
BEGIN
	SET @ParamOut = @ParamIn+333
END
Прописываю в ole db command:
Exec [dbo].[usp_Tets] ?,? OUTPUT
В итоге в списке output параметров в ole db command пусто! При попытке добавить параметр в раздел output получаю ошибку - The component does not allow adding columns to this input or output.
Собсна вопрос как из ole db command вернуть output параметр?

К сообщению приложен файл. Размер - 103Kb
29 сен 11, 16:37    [11356728]     Ответить | Цитировать Сообщить модератору
 Re: SSIS 2005 Ole Db Command OUTPUT параметры  [new]
trew
Member

Откуда: Москва
Сообщений: 2646
rainebove2,

В конце процедуры добавь слово return.
29 сен 11, 17:18    [11357100]     Ответить | Цитировать Сообщить модератору
 Re: SSIS 2005 Ole Db Command OUTPUT параметры  [new]
trew
Member

Откуда: Москва
Сообщений: 2646
rainebove2,

CREATE PROCEDURE GetIdentity
@ID int OUTPUT
AS
select @ID = @@IDENTITY
return
29 сен 11, 17:21    [11357133]     Ответить | Цитировать Сообщить модератору
 Re: SSIS 2005 Ole Db Command OUTPUT параметры  [new]
rainebove2
Member

Откуда: Москва
Сообщений: 34
trew
rainebove2,

В конце процедуры добавь слово return.


Не помогло, все тоже самое, список output параметров пуст и ошибка при попытке добавления output параметра
29 сен 11, 17:47    [11357391]     Ответить | Цитировать Сообщить модератору
 Re: SSIS 2005 Ole Db Command OUTPUT параметры  [new]
rainebove2
Member

Откуда: Москва
Сообщений: 34
Вопрос открыт. Неужели никто не сталкивался??
29 сен 11, 18:29    [11357711]     Ответить | Цитировать Сообщить модератору
 Re: SSIS 2005 Ole Db Command OUTPUT параметры  [new]
Ray D
Member

Откуда: from the middle of nowhere
Сообщений: 3598
Блог
Так как вы хотите -- нельзя. Вы чего собираетесь потом с этими параметрами делать?
29 сен 11, 18:50    [11357783]     Ответить | Цитировать Сообщить модератору
 Re: SSIS 2005 Ole Db Command OUTPUT параметры  [new]
KORSA
Member

Откуда:
Сообщений: 56
я сталкивался долго мучился и забил :)
29 сен 11, 18:52    [11357793]     Ответить | Цитировать Сообщить модератору
 Re: SSIS 2005 Ole Db Command OUTPUT параметры  [new]
Ray D
Member

Откуда: from the middle of nowhere
Сообщений: 3598
Блог
А смысл этой затеи?
29 сен 11, 18:54    [11357804]     Ответить | Цитировать Сообщить модератору
 Re: SSIS 2005 Ole Db Command OUTPUT параметры  [new]
rainebove2
Member

Откуда: Москва
Сообщений: 34
Ray D
А смысл этой затеи?

Есть таблица фактов и измерения, при заливке данных из источников подставляю вместо строк измерений ключи, ключи измерений ищу lookup -ом если lookup не находит ключ добавляю не найденное значение в измерение вызовом ХП через Ole Db Command. Было бы удобно получить на выходе @@identity и использовать его дальше в пакете. Пробовал посл вызова Ole Db Command повторно вызывать lookup но он почему то не хочет находить только что вставленную запись. Вообщем придется наверно ssis заменить на вызов одной большой ХП которая и будет заменять строки на ключи справочников, только не знаю как это на производительности скажется.
29 сен 11, 23:57    [11358969]     Ответить | Цитировать Сообщить модератору
 Re: SSIS 2005 Ole Db Command OUTPUT параметры  [new]
Glory
Member

Откуда:
Сообщений: 104751
А так если?
CREATE PROCEDURE [dbo].[usp_Tets]	@ParamIn int
					,@ParamOut int
AS
BEGIN
	SELECT  @ParamIn+333 AS ParamOut
END


Сообщение было отредактировано: 30 сен 11, 09:32
30 сен 11, 09:12    [11359515]     Ответить | Цитировать Сообщить модератору
 Re: SSIS 2005 Ole Db Command OUTPUT параметры  [new]
aleks2
Guest
With New ADODB.Command
    .CommandType = adCmdStoredProc
    .CommandText = "dbo.[chk_Надо пересчитать]"
    .Parameters.Append .CreateParameter("@ID", adInteger, adParamOutput, , )
    .Execute

Матчасть надо изучать настоящим образом.

ЗЫ. Кагбе намекаю: exec не нада.
30 сен 11, 09:35    [11359608]     Ответить | Цитировать Сообщить модератору
 Re: SSIS 2005 Ole Db Command OUTPUT параметры  [new]
rainebove2
Member

Откуда: Москва
Сообщений: 34
Glory
А так если?
CREATE PROCEDURE [dbo].[usp_Tets]	@ParamIn int
					,@ParamOut int
AS
BEGIN
	SELECT  @ParamIn+333 AS ParamOut
END

Тоже самое, список output параметров пуст...

aleks2
With New ADODB.Command
    .CommandType = adCmdStoredProc
    .CommandText = "dbo.[chk_Надо пересчитать]"
    .Parameters.Append .CreateParameter("@ID", adInteger, adParamOutput, , )
    .Execute

Матчасть надо изучать настоящим образом.

ЗЫ. Кагбе намекаю: exec не нада.


Через скрипт тоже вариант, посмотрим что будет быстрее, скрипт или хп без параметров.
30 сен 11, 10:15    [11359857]     Ответить | Цитировать Сообщить модератору
 Re: SSIS 2005 Ole Db Command OUTPUT параметры  [new]
Ray D
Member

Откуда: from the middle of nowhere
Сообщений: 3598
Блог
rainebove2,

Ну мы в данном случаем либо id-шники сами считаем (находим max id для измерения, и в script component инкрементим для новых), либо в два прохода.
30 сен 11, 10:50    [11360136]     Ответить | Цитировать Сообщить модератору
 Re: SSIS 2005 Ole Db Command OUTPUT параметры  [new]
Ray D
Member

Откуда: from the middle of nowhere
Сообщений: 3598
Блог
rainebove2
Пробовал посл вызова Ole Db Command повторно вызывать lookup но он почему то не хочет находить только что вставленную запись.

А lookup с кешем?
30 сен 11, 10:58    [11360212]     Ответить | Цитировать Сообщить модератору
 Re: SSIS 2005 Ole Db Command OUTPUT параметры  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
trew
В конце процедуры добавь слово return.

Это как такая мысля могла родиться?

PS: SSIS - мыши, кактус ...
30 сен 11, 11:11    [11360345]     Ответить | Цитировать Сообщить модератору
 Re: SSIS 2005 Ole Db Command OUTPUT параметры  [new]
rainebove2
Member

Откуда: Москва
Сообщений: 34
Ray D
rainebove2
Пробовал посл вызова Ole Db Command повторно вызывать lookup но он почему то не хочет находить только что вставленную запись.

А lookup с кешем?

Да Cache Type = Full не знал про эту опцию, поставил Partial Cache теперь ищет, спасибо.
30 сен 11, 14:49    [11362922]     Ответить | Цитировать Сообщить модератору
 Re: SSIS 2005 Ole Db Command OUTPUT параметры  [new]
J.d
Member

Откуда: Москва
Сообщений: 691
Mnior,

:D
30 сен 11, 15:52    [11363650]     Ответить | Цитировать Сообщить модератору
 Re: SSIS 2005 Ole Db Command OUTPUT параметры  [new]
J.d
Member

Откуда: Москва
Сообщений: 691
rainebove2

!

Exec [dbo].[usp_Tets] ?,? OUT
30 сен 11, 15:54    [11363668]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить