Program aracılığıyla değişkenlerle çalışmak

Değişkenler, dinamik paketler, konteynerler, görevleri ve olay işleyicileri süreçleri kontrol ve değerlerini ayarlamak için bir yoldur. Değişkenleri de önceliği kısıtlamaları tarafından farklı görevler için veri akışının yönünü denetlemek için kullanılır. Değişkenleri kullanan çeşitli vardır:

Kapsam

Her konteyner kendi sahip Variableskoleksiyonu. Yeni bir değişken oluşturulduğunda, üst kapsayıcısının kapsamı içinde olduğunu. Paketi kapsayıcıyı kapsayıcı hiyerarşisinin en üstünde olduğundan, değişkenleri paketi kapsam işlevine sahip ve global değişkenler gibi paket için tüm kapsayıcılara görülebilir. Kapsayıcı değişkenleri koleksiyonu ile konteyner çocuklar tarafından da erişilebilir Variablesveya değişken adını veya değişken dizin koleksiyonda kullanarak toplama.

Yukarıdan aşağı kapsamlı bir değişken görünürlük çünkü paket düzeyinde bildirilen değişkenler pakette tüm kapsayıcılara görülebilir. Bu nedenle, Variables, kendi değişkenlere ek olarak ana ait tüm değişkenleri koleksiyonu bir kapsayıcı içerir

Tersine, bir görev içerdiği değişkenleri kapsamını ve görünürlüğü sınırlıdır ve yalnızca görev için görülebilir.

Bir paketi diğer paketleri çalışırsa, arama paketi kapsamında tanımlanmış değişkenleri adı verilen paket için kullanılabilir. Aynı adlı bir değişken adı verilen paket içinde olduğunda tek istisnası oluşur. Bu çarpışma gerçekleştiğinde, denilen paketi değişken değer arayan paket değeri geçersiz kılar. Çağrılan Paket kapsamında tanımlanan değişkenleri asla geri çağırma paket için kullanılabilir.

Aşağıdaki kod örneği programlı bir değişken oluşturur myCustomVar, paketi kapsamında ve sonra paketi, onların adı, veri türü, yazdırma ve değerine görünür tüm değişkenleri aracılığıyla sırayla dolaşır.

using System;
using Microsoft.SqlServer.Dts.Runtime;

namespace Microsoft.SqlServer.Dts.Samples
{
  class Program
  {
    static void Main(string[] args)
    {
      Application app = new Application();
      // Load a sample package that contains a variable that sets the file name.
      Package pkg = app.LoadPackage(
        @"C:\Program Files\Microsoft SQL Server\100\Samples\Integration Services" +
        @"\Package Samples\CaptureDataLineage Sample\CaptureDataLineage\CaptureDataLineage.dtsx",
        null);
      Variables pkgVars = pkg.Variables;
      Variable myVar = pkg.Variables.Add("myCustomVar", false, "User", "3");
      foreach (Variable pkgVar in pkgVars)
      {
        Console.WriteLine("Variable: {0}, {1}, {2}", pkgVar.Name,
          pkgVar.DataType, pkgVar.Value.ToString());
      }
      Console.Read();
    }
  }
}
using System;
using Microsoft.SqlServer.Dts.Runtime;

namespace Microsoft.SqlServer.Dts.Samples
{
  class Program
  {
    static void Main(string[] args)
    {
      Application app = new Application();
      // Load a sample package that contains a variable that sets the file name.
      Package pkg = app.LoadPackage(
        @"C:\Program Files\Microsoft SQL Server\100\Samples\Integration Services" +
        @"\Package Samples\CaptureDataLineage Sample\CaptureDataLineage\CaptureDataLineage.dtsx",
        null);
      Variables pkgVars = pkg.Variables;
      Variable myVar = pkg.Variables.Add("myCustomVar", false, "User", "3");
      foreach (Variable pkgVar in pkgVars)
      {
        Console.WriteLine("Variable: {0}, {1}, {2}", pkgVar.Name,
          pkgVar.DataType, pkgVar.Value.ToString());
      }
      Console.Read();
    }
  }
}
Imports Microsoft.SqlServer.Dts.Runtime

Module Module1

  Sub Main()

    Dim app As Application = New Application()
    ' Load a sample package that contains a variable that sets the file name.
    Dim pkg As Package = app.LoadPackage( _
      "C:\Program Files\Microsoft SQL Server\100\Samples\Integration Services" & _
      "\Package Samples\CaptureDataLineage Sample\CaptureDataLineage\CaptureDataLineage.dtsx", _
      Nothing)
    Dim pkgVars As Variables = pkg.Variables
    Dim myVar As Variable = pkg.Variables.Add("myCustomVar", False, "User", "3")
    Dim pkgVar As Variable
    For Each pkgVar In pkgVars
      Console.WriteLine("Variable: {0}, {1}, {2}", pkgVar.Name, _
        pkgVar.DataType, pkgVar.Value.ToString())
    Next
    Console.Read()

  End Sub

End Module
Imports Microsoft.SqlServer.Dts.Runtime

Module Module1

  Sub Main()

    Dim app As Application = New Application()
    ' Load a sample package that contains a variable that sets the file name.
    Dim pkg As Package = app.LoadPackage( _
      "C:\Program Files\Microsoft SQL Server\100\Samples\Integration Services" & _
      "\Package Samples\CaptureDataLineage Sample\CaptureDataLineage\CaptureDataLineage.dtsx", _
      Nothing)
    Dim pkgVars As Variables = pkg.Variables
    Dim myVar As Variable = pkg.Variables.Add("myCustomVar", False, "User", "3")
    Dim pkgVar As Variable
    For Each pkgVar In pkgVars
      Console.WriteLine("Variable: {0}, {1}, {2}", pkgVar.Name, _
        pkgVar.DataType, pkgVar.Value.ToString())
    Next
    Console.Read()

  End Sub

End Module

Örnek çıktı:

Variable: CancelEvent, Int32, 0

Variable: CreationDate, DateTime, 4/18/2003 11:57:00 AM

Variable: CreatorComputerName, String,

Variable: CreatorName, String,

Variable: ExecutionInstanceGUID, String, {237AB5A4-7E59-4FC9-8D61-E8F20363DF25}

Variable: FileName, String, Junk

Variable: InteractiveMode, Boolean, False

Variable: LocaleID, Int32, 1033

Variable: MachineName, String, MYCOMPUTERNAME

Variable: myCustomVar, String, 3

Variable: OfflineMode, Boolean, False

Variable: PackageID, String, {F0D2E396-A6A5-42AE-9467-04CE946A810C}

Variable: PackageName, String, DTSPackage1

Variable: StartTime, DateTime, 1/28/2005 7:55:39 AM

Variable: UserName, String, <domain>\<userid>

Variable: VersionBuild, Int32, 198

Variable: VersionComments, String,

Variable: VersionGUID, String, {90E105B4-B4AF-4263-9CBD-C2050C2D6148}

Variable: VersionMajor, Int32, 1

Variable: VersionMinor, Int32, 0

İçinde tüm değişkenlerin kapsamlı haber Systemad kullanılabilir paketi. Daha fazla bilgi için, bkz. Sistem değişkenleri.

Ad alanları

Microsoft SQL Server Integration Services(SSIS) değişkenlerin bulunduğu; iki varsayılan ad alanı sağlar Userve Systemnamespaces. Varsayılan olarak, geliştirici tarafından oluşturulan herhangi bir özel değişken eklenir ve Usernamespace. Sistem değişkenleri bulunan Systemnamespace. Sen-ebilmek yaratmak ek ad boşlukları dışında Userözel değişkenler ve tutmak için ad alanı adı değiştirebilirsiniz Userad, ancak ekleyemez veya değişkenleri değiştirmek Systemad veya Sistem değişkenleri için farklı bir ad atayın.

Kullanılabilir sistem değişkenleri konteyner türüne bağlı olarak farklılık gösterir. Paketler, konteynerler, görevleri ve olay işleyicileri için mevcut sistem değişkenleri listesi için bkz: Sistem değişkenleri.

Değer

Özel bir değişken değeri sabit bir değer veya deyim olabilir:

  • Bir hazır bilgi değeri içeren değişken isterseniz, değerini ayarlayın, Valueözellik.

  • İfadenin sonuçlarını değeri kullanabilmesi değişken bir ifade içeriyor istiyorsanız, EvaluateAsExpressiondeğişken için trueve bir ifade Expressionözellik. Çalışma zamanında ifade değerlendirilir ve ifadenin sonucu değişkenin değeri kullanılır. Örneğin, değişken bir ifade özelliği, "100 * 2""100 * 2", değişken 200 değerine değerlendirir.

Bir değişken, değeri açıkça ayarlanamıyor, DataType. DataTypeDeğeri değişkene atanan başlangıç değeri değişkenden ve sonradan değiştirilemez. Değişken veri türleri hakkında daha fazla bilgi için bkz: Tümleştirme Hizmetleri veri türleri.

Aşağıdaki kod örneği, yeni bir değişken, kümeleri oluşturur EvaluateAsExpressioniçin true, ifade atar "100 * 2"değişken ifade özelliğine ve değişken değeri çıktılar.

using System;
using Microsoft.SqlServer.Dts.Runtime;

namespace Microsoft.SqlServer.Dts.Samples
{
  class Program
  {
    static void Main(string[] args)
    {
      Package pkg = new Package();
      Variable v100 = pkg.Variables.Add("myVar", false, "", 1);
      v100.EvaluateAsExpression = true;
      v100.Expression = "100 * 2";
      Console.WriteLine("Expression for myVar: {0}", 
        v100.Properties["Expression"].GetValue(v100));
      Console.WriteLine("Value of myVar: {0}", v100.Value.ToString());
      Console.Read();
    }
  }
}
using System;
using Microsoft.SqlServer.Dts.Runtime;

namespace Microsoft.SqlServer.Dts.Samples
{
  class Program
  {
    static void Main(string[] args)
    {
      Package pkg = new Package();
      Variable v100 = pkg.Variables.Add("myVar", false, "", 1);
      v100.EvaluateAsExpression = true;
      v100.Expression = "100 * 2";
      Console.WriteLine("Expression for myVar: {0}", 
        v100.Properties["Expression"].GetValue(v100));
      Console.WriteLine("Value of myVar: {0}", v100.Value.ToString());
      Console.Read();
    }
  }
}
Imports Microsoft.SqlServer.Dts.Runtime

Module Module1

  Sub Main()

    Dim pkg As Package = New Package
    Dim v100 As Variable = pkg.Variables.Add("myVar", False, "", 1)
    v100.EvaluateAsExpression = True
    v100.Expression = "100 * 2"
    Console.WriteLine("Expression for myVar: {0}", _
      v100.Properties("Expression").GetValue(v100))
    Console.WriteLine("Value of myVar: {0}", v100.Value.ToString)
    Console.Read()

  End Sub

End Module
Imports Microsoft.SqlServer.Dts.Runtime

Module Module1

  Sub Main()

    Dim pkg As Package = New Package
    Dim v100 As Variable = pkg.Variables.Add("myVar", False, "", 1)
    v100.EvaluateAsExpression = True
    v100.Expression = "100 * 2"
    Console.WriteLine("Expression for myVar: {0}", _
      v100.Properties("Expression").GetValue(v100))
    Console.WriteLine("Value of myVar: {0}", v100.Value.ToString)
    Console.Read()

  End Sub

End Module

Örnek çıktı:

Expression for myVar: 100 * 2

Value of myVar: 200

İfade kullanan geçerli bir ifade olmalıdır SSISifade sözdizimini. Harflerin değişken ifadeler, ifade sözdizimi sağlar, işlevler ve işleçler ek olarak izin verilir, ancak ifadeleri diğer değişkenler veya sütunları başvuru yapamazsınız. Daha fazla bilgi için, bkz. Integration Services Expression Reference.

Yapılandırma dosyaları

Bir yapılandırma dosyası özel bir değişken içeriyorsa, değişken zamanında güncelleştirilebilir. Bu paket çalıştığında, bu yapılandırma dosyasından yeni bir değerle özgün paketi değişken değeri değiştirilir anlamı. Bu yeni teknik, bir paket farklı değişken değerlerini gerektiren birden çok sunucuya dağıtılır yararlıdır. Örneğin, bir değişken sayısını belirleyebilirsiniz bir Foreach döngü konteyner tekrarlar, iş akışı veya liste olay işleyicisi gönderdiği alıcıların bir hata yükseltildiğinde e ya da paket başarısız olmadan önce oluşan hataları sayısını değiştirme. Bu değişkenler, dinamik yapılandırma dosyalarındaki her ortam için sağlanır. Bu nedenle, yalnızca okuma değişkenler yapılandırma dosyalarında izin verilir. Daha fazla bilgi için, bkz. Paket yapılandırmalarını oluşturma.

Integration Services simgesi (küçük) Integration Services ile güncel kalın

En son karşıdan yüklemeler, makaleler, örnekler ve Microsoft video yanı sıra topluluk seçili çözümleri için ziyaret Integration ServicesMSDN sayfası:


Bu güncelleştirmelerle ilgili otomatik bildirim almak için, sayfadaki RSS akışlarına abone olun.

Ayrıca bkz.

Görevler

Paketlerinde değişkenleri kullanma

Kavramlar

SSIS paketi değişkenleri