Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 SSIS Как переменным присвоить значение в Script Component?  [new]
Poleax
Member

Откуда: msk
Сообщений: 208
На скриншоте есть переменные varDataReport, varReportNumber, varVersionXML
Из компонента Merge Join возвращаются поля Version, Nomer, Year, Month

как эти поля из Row присвоить переменным varDataReport, varReportNumber, varVersionXML?
Должно получится:
varReportNumber = Nomer
varVersionXML = Version
varDataReport = СОЗДАЕМ ДАТУ (1, Month, Year)



Чтоб когда отработал Script Component и вернулся на ControlFlow далее их обрработать.
Картинка с другого сайта.

' Microsoft SQL Server Integration Services Script Component
' Write scripts using Microsoft Visual Basic 2008.
' ScriptMain is the entry point class of the script.

Imports System
Imports System.Data
Imports System.Math
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper

<Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute> _
<CLSCompliant(False)> _
Public Class ScriptMain
    Inherits UserComponent
    Dim _Date As DateTime
    Dim _Version As Int16
    Dim _ReportNumber As String



    Public Overrides Sub PreExecute()
        _Version = 0
        MyBase.PreExecute()
    End Sub

    Public Overrides Sub PostExecute()

        Dim vars1 As IDTSVariables100
        Dim vars2 As IDTSVariables100
        Dim vars3 As IDTSVariables100
        Me.VariableDispenser.LockOneForWrite("varDataReport", vars1)
        vars1(0).Value = _Date
        vars1.Unlock()
        Me.VariableDispenser.LockOneForWrite("varVersionXML", vars2)
        vars2(0).Value = _Version
        vars2.Unlock()
        Me.VariableDispenser.LockOneForWrite("varReportNumber", vars3)
        vars3(0).Value = _ReportNumber
        vars3.Unlock()
        MyBase.PostExecute()
    End Sub

    Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
        '
        '_Date = Row.Month

        _Version = Row.Version
        _ReportNumber = Row.Nomer

        '
    End Sub

End Class

Что не так в скрипте?
16 июл 09, 19:51    [7426286]     Ответить | Цитировать Сообщить модератору
 Re: SSIS Как переменным присвоить значение в Script Component?  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Вы просто тренеруетесь или у вас какая-то конкретная задача?
Опишите, лучше, что вам требуется получить, а не вариант решения.
17 июл 09, 06:24    [7427052]     Ответить | Цитировать Сообщить модератору
 Re: SSIS Как переменным присвоить значение в Script Component?  [new]
Poleax
Member

Откуда: msk
Сообщений: 208
tpg
Вы просто тренеруетесь или у вас какая-то конкретная задача?
Опишите, лучше, что вам требуется получить, а не вариант решения.

Я тренируюсь делая конкретную задачу.
Вопрос простой как мне в DataFlow присвоить переменные varDataReport, varReportNumber, varVersionXML из значений возвращаемых компонентом Megre Join.
Компанент Merge Join ВСЕГДА будет возвращать одну строку. Вот поля этой строки и требуется обработать и присвоить переменным.

Далее от значений этих переменных (varDataReport, varReportNumber, varVersionXML) будет записить по какому условию пойдет дальше работа на вкладке Control Flow.

Вопрос то собственно элементарный: как присвоить переменным значение в Script Component :-) ?
17 июл 09, 08:54    [7427213]     Ответить | Цитировать Сообщить модератору
 Re: SSIS Как переменным присвоить значение в Script Component?  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Не то что-то вы делаете...

Вы бы хоть примеры из документации разобрали:

ms-help://MS.SQLCC.v10/MS.SQLSVR.v10.ru/s10is_2devguide/html/1fda034d-09e4-4647-9a9f-e8d508c2cc8f.htm
17 июл 09, 09:41    [7427330]     Ответить | Цитировать Сообщить модератору
 Re: SSIS Как переменным присвоить значение в Script Component?  [new]
Poleax
Member

Откуда: msk
Сообщений: 208
tpg
Не то что-то вы делаете...

Вы бы хоть примеры из документации разобрали:

ms-help://MS.SQLCC.v10/MS.SQLSVR.v10.ru/s10is_2devguide/html/1fda034d-09e4-4647-9a9f-e8d508c2cc8f.htm


Спасибо буду читать.
17 июл 09, 17:27    [7430689]     Ответить | Цитировать Сообщить модератору
 Re: SSIS Как переменным присвоить значение в Script Component?  [new]
Poleax
Member

Откуда: msk
Сообщений: 208
using System;
using System.Data;
using Microsoft.SqlServer.Dts.Pipeline.Wrapper;
using Microsoft.SqlServer.Dts.Runtime.Wrapper;

[Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute]
public class ScriptMain : UserComponent
{
    Int16 ver;
    DateTime dt;
    string snomer;

    public override void PreExecute()
    {
        base.PreExecute();
    }

    public override void PostExecute()
    {
        base.PostExecute();
        Variables.varVersionXML = ver;
        Variables.varDataReport = dt;
        Variables.varReportNumber = snomer;
    }

    public override void Вход0_ProcessInputRow(Вход0Buffer Row)
    {
        ver = Convert.ToInt16(Row.Version);
        dt  = new DateTime(Convert.ToInt16(Row.Year), Convert.ToInt16(Row.Month), 1);
        snomer = Row.Nomer;
    }

}

27 июл 09, 15:45    [7464944]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить