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

Откуда:
Сообщений: 2696
Доброго дня господа !

Имею Business Intelligence Development Studio в нем параметр СПИСКА
который хочу передавать в табличную функцию

create function [dbo].[MyFunction1](@Kind Integer ???????????????)
returns table
as return select *
from T1
where F1 in (@Kind)

Вопрос какого типа данных передаються параметры (строка, таблицы, массив, пользовательский табличный тип)

К сообщению приложен файл. Размер - 13Kb
10 май 12, 13:29    [12529712]     Ответить | Цитировать Сообщить модератору
 Re: Business Intelligence Development Studio (какого типа передаеться параметр)  [new]
HOME_X
Member

Откуда:
Сообщений: 2696
HOME_X,

Если судить из последней результата = select @R1 F1 = явно не строка !!!!
(похоже на последную запись таблицы )
10 май 12, 13:33    [12529749]     Ответить | Цитировать Сообщить модератору
 Re: Business Intelligence Development Studio (какого типа передаеться параметр)  [new]
AlexMajic
Member

Откуда: Kiev
Сообщений: 99
Если я правильно понял, то функция выполняется из Execute SQL Task. В таком случае, - проще всего, если это возможно, - загнать список (через запятую) в переменную пакета типа string, а в задаче прибиндить эту переменную как входной параметр к Execute SQL Task. Тогда получится функция:

create function [dbo].[MyFunction1](@Kind varchar(max))
returns table
as return select *
from T1
where F1 in (@Kind)

и ее вызов из Execute SQL Task:

[dbo].[MyFunction1] @Kind=?

и биндинг переменной:

Параметр: Kind
Переменная: User::Kind

Значение переменной пакета User::Kind = 1, 2, 3, 4
10 май 12, 13:54    [12529924]     Ответить | Цитировать Сообщить модератору
 Re: Business Intelligence Development Studio (какого типа передаеться параметр)  [new]
HOME_X
Member

Откуда:
Сообщений: 2696
AlexMajic,

Со стрингой вариант понятен...
Сначал сбор строки - потом разбор.
Честно говоря не хотелось бы, вроде MSQL2008 - не есть совсем плохой сервер !

Убедился - работает вот так
select t.F1,t.F2,t.f3,t.F4 from (values(@R1)) t(f1,F2,f3,F4)

Если число массива @R1 = 4 (т.е. переданным пользователем) и описанным в запросе равны
т.е. параметр передаеться массивом.

Вопрос - а принять массив переменных в функции можно ?
10 май 12, 14:23    [12530129]     Ответить | Цитировать Сообщить модератору
 Re: Business Intelligence Development Studio (какого типа передаеться параметр)  [new]
HOME_X
Member

Откуда:
Сообщений: 2696
HOME_X,

ну типа
create function MyFunction(values(@R1))
а потом пробежать циклом и слить в таблицу
10 май 12, 14:31    [12530191]     Ответить | Цитировать Сообщить модератору
 Re: Business Intelligence Development Studio (какого типа передаеться параметр)  [new]
AlexMajic
Member

Откуда: Kiev
Сообщений: 99
В варианте со строкой разбор не нужен, т.к. она уже в готовом виде для функции. А с массивом - в SSIS есть тип Object. Т.е. нужно сделать переменную с типом Object, залить в нее данные. А на входе функции (я юзал только с процедурой, так что не уверен) - примерно как описано тут: http://msdn.microsoft.com/ru-ru/library/bb510489.aspx
10 май 12, 14:44    [12530338]     Ответить | Цитировать Сообщить модератору
 Re: Business Intelligence Development Studio (какого типа передаеться параметр)  [new]
HOME_X
Member

Откуда:
Сообщений: 2696
AlexMajic,

Ознакомился, но не совсем понял как обеспечить заливку списка параметров в описанный тип

INSERT INTO @LocationTVP (LocationName, CostRate)
    SELECT Name, 0.00
    FROM AdventureWorks2012.Person.StateProvince


INSERT INTO @LocationTVP (LocationName, CostRate)
SELECT P1 ?

И момент два у меня в интрефейсе подаються параметры - только под SELECT
т.е. - я не могу выполнить две команды
Insert в таблицу(тип)
select ....
10 май 12, 15:19    [12530639]     Ответить | Цитировать Сообщить модератору
 Re: Business Intelligence Development Studio (какого типа передаеться параметр)  [new]
HOME_X
Member

Откуда:
Сообщений: 2696
HOME_X,
И момент ТРИ для описания пользоват. типа мне необходимо четко знать кол-во полей

Но параметр R1 передаеться в строку соответственно кол-во полей есть величина
димамичная..
select t.F1,t.F2,t.f3,t.F4 from (values(@R1)) t(f1,F2,f3,F4)
10 май 12, 15:47    [12530914]     Ответить | Цитировать Сообщить модератору
 Re: Business Intelligence Development Studio (какого типа передаеться параметр)  [new]
HOME_X
Member

Откуда:
Сообщений: 2696
HOME_X,

Кажеться прийдеться через строку реализовывать !!!!!!!1
Гадинько как-то !
10 май 12, 16:57    [12531632]     Ответить | Цитировать Сообщить модератору
 Re: Business Intelligence Development Studio (какого типа передаеться параметр)  [new]
AlexMajic
Member

Откуда: Kiev
Сообщений: 99
Я не совсем понял насчет заливки... В SSIS легко залить в переменную данные таким образом:
1. Создаем пользовательскую переменную пакета, например User::Var типа Object
2. Если данные в нее пишем из таблицы/запроса - используем компонент Control Flow: Execute SQL Task
3. В Execute SQL Task пишем запрос, который возвращает DataSet с нужным нам массивом (я так понимаю - один столбец).
4. В свойствах Execute SQL Task для Result set выбираем Full result set
5. Там же во вкладке Result set мапим параметр типа такого: Result Name: 0, Variable Name: User::Var
После выполнения этого шага массив попадает в переменную пакета User::Var, которую мы и используем как параметр в функции как я написал выше.

Или мы о чем-то разном говорим?)
10 май 12, 18:05    [12532033]     Ответить | Цитировать Сообщить модератору
 Re: Business Intelligence Development Studio (какого типа передаеться параметр)  [new]
HOME_X
Member

Откуда:
Сообщений: 2696
AlexMajic,

Извините - только начал работать ...
У меня стоит Business Intelligence Development Studio я на нем делаю разработку Project (отчета)
Каким образом я могу обеспечить (ИНТЕРФЕЙСНЫМ путем) заливку данных который выберет пользователь


Буду признателен за пример

К сообщению приложен файл. Размер - 71Kb
10 май 12, 18:27    [12532136]     Ответить | Цитировать Сообщить модератору
 Re: Business Intelligence Development Studio (какого типа передаеться параметр)  [new]
AlexMajic
Member

Откуда: Kiev
Сообщений: 99
Я чувствовал, что мы говорим о разных вещах). К сожалению, не могу помочь с отчетным проектом - я их делаю не в BIDS (VS), хотя - принцип, думаю, ненамного будет отличаться...
10 май 12, 18:57    [12532239]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить