Språk

Skapa ett paket programmatiskt

Gäller för:SQL Server SSIS Integration Runtime i Azure Data Factory

Objektet Package är den övergripande behållaren för alla andra objekt i en SSIS-projektlösning. Som den övergripande containern är paketet det första objektet som skapas, och efterföljande objekt läggs till och körs sedan inom paketets kontext. Paketet i sig flyttar eller transformerar inte data. Paketet förlitar sig på de uppgifter det innehåller för att utföra arbetet. Uppgifter utför det mesta av arbetet som utförs av ett paket och definierar paketets funktionalitet. Ett paket skapas och körs med bara tre rader kod, men olika uppgifter och ConnectionManager objekt läggs till för att ge ytterligare funktionalitet till ditt paket. Detta avsnitt diskuterar hur man programmatiskt skapar ett paket. Den ger ingen information om hur uppgifterna ConnectionManagereller . Dessa behandlas i senare avsnitt.

Example

Att skriva kod med Visual Studio IDE, en referens till Microsoft. SqlServer.ManagedDTS.DLL krävs för att skapa ett using uttalande (Importsi Visual Basic .NET) till Microsoft. SqlServer.Dts.Runtime. Följande kodexempel visar att man skapar ett tomt paket.

using System;  
using Microsoft.SqlServer.Dts.Runtime;  
  
namespace Microsoft.SqlServer.Dts.Samples  
{  
  class Program  
  {  
    static void Main(string[] args)  
    {  
      Package package;  
      package = new Package();  
    }  
  }  
}  
Imports Microsoft.SqlServer.Dts.Runtime  
  
Module Module1  
  
  Sub Main()  
  
    Dim package As Package  
    package = New Package  
  
  End Sub  
  
End Module  

För att kompilera och köra provet, tryck F5 i Visual Studio. För att bygga koden med C#-kompilatorn, csc.exe, vid kommandotolken för kompilering, använd följande kommando- och filreferenser, ersätt <filnamnet> med namnet på .cs eller .vb fil och ger den ett <utdatafilnamn> efter eget val.

csc /target:library /out: <outputfilnamn>.dll <filnamn>.cs /r:Microsoft. SqlServer.Managed DTS.dll" /r:System.dll

För att bygga koden med Visual Basic .NET kompilatorn, vbc.exe, vid kommandoprompten för att kompilera, använd följande kommando- och filreferenser.

VBC /target:library /out: <outputfilnamn>.dll <filnamn>.vb /r:Microsoft. SqlServer.Managed DTS.dll" /r:System.dll

Du kan också skapa ett paket genom att ladda ett befintligt paket som sparats på disk, i filsystemet eller till SQL Server. Skillnaden är att objektet Application först skapas, och sedan fylls paketobjektet med någon av applikationens överbelastade metoder: LoadPackage för platta filer, LoadFromSQLServer för paket sparade i SQL Server, eller LoadFromDtsServer för paket sparade i filsystemet. Följande exempel laddar ett befintligt paket från disken och visar sedan flera egenskaper på paketet.

using System;  
using Microsoft.SqlServer.Dts.Runtime;  
  
namespace Microsoft.SqlServer.Dts.Samples  
{  
  class ApplicationTests  
  {  
    static void Main(string[] args)  
    {  
      // The variable pkg points to the location of the  
      // ExecuteProcess package sample that was installed with  
      // the SSIS samples.  
      string pkg = @"C:\Program Files\Microsoft SQL Server\100\Samples\Integration Services" +  
        @"\Package Samples\ExecuteProcess Sample\ExecuteProcess\UsingExecuteProcess.dtsx";  
  
      Application app = new Application();  
      Package p = app.LoadPackage(pkg, null);  
  
      // Now that the package is loaded, we can query on  
      // its properties.  
      int n = p.Configurations.Count;  
      DtsProperty p2 = p.Properties["VersionGUID"];  
      DTSProtectionLevel pl = p.ProtectionLevel;  
  
      Console.WriteLine("Number of configurations = " + n.ToString());  
      Console.WriteLine("VersionGUID = " + (string)p2.GetValue(p));  
      Console.WriteLine("ProtectionLevel = " + pl.ToString());  
      Console.Read();  
    }  
  }  
}  
Imports Microsoft.SqlServer.Dts.Runtime  
  
Module ApplicationTests  
  
  Sub Main()  
  
    ' The variable pkg points to the location of the  
    ' ExecuteProcess package sample that was installed with  
    ' the SSIS samples.  
    Dim pkg As String = _  
      "C:\Program Files\Microsoft SQL Server\100\Samples\Integration Services" & _  
      "\Package Samples\ExecuteProcess Sample\ExecuteProcess\UsingExecuteProcess.dtsx"  
  
    Dim app As Application = New Application()  
    Dim p As Package = app.LoadPackage(pkg, Nothing)  
  
    ' Now that the package is loaded, we can query on  
    ' its properties.  
    Dim n As Integer = p.Configurations.Count  
    Dim p2 As DtsProperty = p.Properties("VersionGUID")  
    Dim pl As DTSProtectionLevel = p.ProtectionLevel  
  
    Console.WriteLine("Number of configurations = " & n.ToString())  
    Console.WriteLine("VersionGUID = " & CType(p2.GetValue(p), String))  
    Console.WriteLine("ProtectionLevel = " & pl.ToString())  
    Console.Read()  
  
  End Sub  
  
End Module  

Exempel på utdata:

Number of configurations = 2

VersionGUID = {09016682-89B8-4406-AAC9-AF1E527FF50F}

ProtectionLevel = DontSaveSensitive