ForLoop.GetPackagePath Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Gibt eine Zeichenfolge zurück, die den relativen Pfad zum Paketspeicherort enthält.
public:
virtual System::String ^ GetPackagePath();
public string GetPackagePath ();
abstract member GetPackagePath : unit -> string
override this.GetPackagePath : unit -> string
Public Function GetPackagePath () As String
Gibt zurück
Eine Zeichenfolge, die den Pfad zum Paket enthält.
Implementiert
Beispiele
Im folgenden Codebeispiel wird eine ForLoop Eigenschaft erstellt und die drei Ausdruckseigenschaften festgelegt. Der Paketpfad der ForLoop zurückgegeben wird mithilfe der GetPackagePath Methode.
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SqlServer.Dts.Runtime;
using Microsoft.SqlServer.Dts.Tasks.SendMailTask;
using Microsoft.SqlServer.Dts.Tasks.BulkInsertTask;
namespace ForLoopAPI
{
class Program
{
static void Main(string[] args)
{
String varName = "MyVariable";
int INIT_COUNT = 2;
int MAX_COUNT = 5;
Package pkg = new Package();
Variable var = pkg.Variables.Add(varName, false, "", 0);
Variable var2 = pkg.Variables.Add("Counter", false, "", 0);
ForLoop forLoop = (ForLoop)pkg.Executables.Add("STOCK:ForLoop");
forLoop.InitExpression = "@"+varName+" = "+INIT_COUNT;
forLoop.EvalExpression = "@"+varName+" < "+MAX_COUNT;
forLoop.AssignExpression = "@" + varName + " = @" + varName + " + " + INIT_COUNT;
// Show a different syntax for setting these values.
//forLoop.InitExpression = "@Counter = 1";
//forLoop.AssignExpression = "@Counter = @Counter + 1";
//forLoop.EvalExpression = "@Counter <= 10";
// The ForLoop contains a Properties collection.
// Show how to set some properties using that collection.
forLoop.Properties["Name"].SetValue(forLoop, "ForLoop Container");
forLoop.Properties["Description"].SetValue(forLoop, "ForLoop Container");
// Review the PackagePath of the ForLoop container.
Console.WriteLine("PackagePath: {0}", forLoop.GetPackagePath());
// Because the ForLoop is a container, it can contain tasks
// that run at certain conditions.
TaskHost thLoopMail = (TaskHost)forLoop.Executables.Add("STOCK:SendMailTask");
TaskHost thLoopInsert = (TaskHost)forLoop.Executables.Add("STOCK:BulkInsertTask");
Executables loopExecs = forLoop.Executables;
Console.WriteLine("Number of Executables in ForLoop: {0}", loopExecs.Count);
// Like other containers, precedence constraints can be set on the
// contained tasks.
PrecedenceConstraint pc = forLoop.PrecedenceConstraints.Add((Executable)thLoopMail, thLoopInsert);
PrecedenceConstraints pcs = forLoop.PrecedenceConstraints;
Console.WriteLine("Number of precedence constraints: {0}", pcs.Count);
// Run the package. Because required properties on the tasks are not
// set, current sample code will fail.
DTSExecResult result = pkg.Execute();
}
}
}
Imports System
Imports System.Collections.Generic
Imports System.Text
Imports Microsoft.SqlServer.Dts.Runtime
Imports Microsoft.SqlServer.Dts.Tasks.SendMailTask
Imports Microsoft.SqlServer.Dts.Tasks.BulkInsertTask
Namespace ForLoopAPI
Class Program
'Entry point which delegates to C-style main Private Function
Public Overloads Shared Sub Main()
Main(System.Environment.GetCommandLineArgs())
End Sub
Overloads Shared Sub Main(args() As String)
Dim varName As String = "MyVariable"
Dim INIT_COUNT As Integer = 2
Dim MAX_COUNT As Integer = 5
Dim pkg As New Package()
Dim var As Variable = pkg.Variables.Add(varName, False, "", 0)
Dim var2 As Variable = pkg.Variables.Add("Counter", False, "", 0)
Dim forLoop As ForLoop = CType(pkg.Executables.Add("STOCK:ForLoop"), ForLoop)
forLoop.InitExpression = "@" + varName + " = " + INIT_COUNT
forLoop.EvalExpression = "@" + varName + " < " + MAX_COUNT
forLoop.AssignExpression = "@" + varName + " = @" + varName + " + " + INIT_COUNT
' Show a different syntax for setting these values.
forLoop.InitExpression = "@Counter = 1"
forLoop.AssignExpression = "@Counter = @Counter + 1"
forLoop.EvalExpression = "@Counter <= 10"
' The ForLoop contains a Properties collection.
' Show how to set some properties using that collection.
forLoop.Properties("Name").SetValue(forLoop, "ForLoop Container")
forLoop.Properties("Description").SetValue(forLoop, "ForLoop Container")
' Review the PackagePath of the ForLoop container.
Console.WriteLine("PackagePath: {0}", forLoop.GetPackagePath())
' Because the ForLoop is a container, it can contain tasks
' that run at certain conditions.
Dim thLoopMail As TaskHost = CType(forLoop.Executables.Add("STOCK:SendMailTask"), TaskHost)
Dim thLoopInsert As TaskHost = CType(forLoop.Executables.Add("STOCK:BulkInsertTask"), TaskHost)
Dim loopExecs As Executables = forLoop.Executables
Console.WriteLine("Number of Executables in ForLoop: {0}", loopExecs.Count)
' Like other containers, precedence constraints can be set on the
' contained tasks.
Dim pc As PrecedenceConstraint = forLoop.PrecedenceConstraints.Add(CType(thLoopMail, Executable), thLoopInsert)
Dim pcs As PrecedenceConstraints = forLoop.PrecedenceConstraints
Console.WriteLine("Number of precedence constraints: {0}", pcs.Count)
' Run the package. Because required properties on the tasks are not
' set, current sample code will fail.
Dim result As DTSExecResult = pkg.Execute()
End Sub 'Main
End Class 'Program
End Namespace 'ForLoopAPI
Beispielausgabe:
PackagePath: \Package\{8A18B94E-1176-429E-BB3D-6F3F1E0C9070}
Anzahl der ausführbaren Dateien in ForLoop: 2
Anzahl der Rangfolgeeinschränkungen: 1