在BIDS(Microsoft Business Intelligence Development Studio)中,如何通过包配置初始化变量?我们在使用用户变量的包中有一个脚本任务。用户变量是硬编码的。我们想让脚本任务可配置。我们有一个SQL Server包配置表,用于存储包配置。
我们是想在脚本任务代码中初始化变量还是可以在变量表中完成?
如果变量是VariableName并且包配置的配置名称是“Configuration Name”,那么语法是什么?
另外,使用包配置值初始化变量是否有意义,或者直接使用包配置会更好吗?
这些是当前的包配置:
这是来自变量窗口:
这是脚本任务的代码:
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
答案 0 :(得分:1)
直接配置目标属性通常更清晰,而不是在中间使用变量。
但是,由于您在脚本任务中引用了值,我无法看到该脚本任务可以直接访问配置值的方式,而不是通过通过变量访问它们。 (在代码中可能有一种方式,我不知道但如果有人发布它会有兴趣阅读。)
从配置中设置变量值的语法是:
\ Package.Variables [用户:: VARIABLENAME]的.properties [数值]
(显然,将VariableName替换为您的变量名称)。此值指定应将配置的值“戳”到包中的位置。在我的配置表中(使用SSIS2008),它位于 PackagePath 列中。然后,您要分配给变量的值将进入 ConfiguredValue 列。