使用程序包配置初始化SSIS变量

时间:2016-03-29 19:39:27

标签: vb.net ssis visual-studio-2005 bids

在BIDS(Microsoft Business Intelligence Development Studio)中,如何通过包配置初始化变量?我们在使用用户变量的包中有一个脚本任务。用户变量是硬编码的。我们想让脚本任务可配置。我们有一个SQL Server包配置表,用于存储包配置。

我们是想在脚本任务代码中初始化变量还是可以在变量表中完成?

如果变量是VariableName并且包配置的配置名称是“Configuration Name”,那么语法是什么?

另外,使用包配置值初始化变量是否有意义,或者直接使用包配置会更好吗?

这些是当前的包配置:

enter image description here

这是来自变量窗口:

enter image description here

这是脚本任务的代码:

Imports System
Imports System.Data
Imports System.Math
Imports Microsoft.SqlServer.Dts.Runtime
Imports System.IO

Public Class ScriptMain

    ' The execution engine calls this method when the task executes.
    ' To access the object model, use the Dts object. Connections, variables, events,
    ' and logging features are available as static members of the Dts class.
    ' Before returning from this method, set the value of Dts.TaskResult to indicate success or failure.
    ' 
    ' To open Code and Text Editor Help, press F1.
    ' To open Object Browser, press Ctrl+Alt+J.

    Public Sub Main()
        '
        ' Add your code here
        '
        Dim fileName As String

        fileName = CStr(Dts.Variables("User::TrialBalanceReportDirectory").Value) + _
                CStr(Dts.Variables("User::Slash").Value) + _
                CStr(Dts.Variables("User::TrialBalanceReportFile").Value)

        'MsgBox(fileName)

        Dts.Variables("TrialBalanceReportExists").Value = File.Exists(fileName)
        Dts.TaskResult = Dts.Results.Success
    End Sub

End Class

谢谢!

michaelc35

1 个答案:

答案 0 :(得分:1)

直接配置目标属性通常更清晰,而不是在中间使用变量。

但是,由于您在脚本任务中引用了值,我无法看到该脚本任务可以直接访问配置值的方式,而不是通过通过变量访问它们。 (在代码中可能有一种方式,我不知道但如果有人发布它会有兴趣阅读。)

从配置中设置变量值的语法是:

\ Package.Variables [用户:: VARIABLENAME]的.properties [数值]

(显然,将VariableName替换为您的变量名称)。此值指定应将配置的值“戳”到包中的位置。在我的配置表中(使用SSIS2008),它位于 PackagePath 列中。然后,您要分配给变量的值将进入 ConfiguredValue 列。