ForLoop.GetPackagePath Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Devuelve una cadena que contiene la ruta de acceso relativa a la ubicación del paquete.
public:
virtual System::String ^ GetPackagePath();
public string GetPackagePath ();
abstract member GetPackagePath : unit -> string
override this.GetPackagePath : unit -> string
Public Function GetPackagePath () As String
Devoluciones
Cadena que contiene la ruta de acceso al paquete.
Implementaciones
Ejemplos
En el ejemplo de código siguiente se crea un ForLoop objeto y se establecen las tres propiedades de expresión. La ruta de acceso del paquete de ForLoop se devuelve mediante el GetPackagePath método .
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
Salida del ejemplo:
PackagePath: \Package\{8A18B94E-1176-429E-BB3D-6F3F1E0C9070}
Número de ejecutables en ForLoop: 2
Número de restricciones de precedencia: 1