Değişkenleri ile programatik olarak çalışma

Bir şekilde dinamik olarak değişkenleridir küme değerleri ve denetim paketleri, kapsayıcılar, görevler ve olay işleyicileri işlemlerinde.Değişkenleri de önceliği kısıtlamaları farklı görevler için veri akışının yönünü denetlemek için kullanılır.Değişkenleri, çeşitli kullanımlar vardır:

Kapsam

Her kapsayıcı kendi var Variables koleksiyon. Yeni bir ortam değişkeni oluştururken içinde olduğu kapsam, üst kapsayıcının.Paket kapsayıcı kapsayıcı hiyerarşisinin en üstünde olduğundan, paketi kapsam işleviyle değişkenleri genel değişkenler ister ve paketi tüm kapsayıcılara görülebilir.Değişkenlerin kapsayıcı için koleksiyon da kapsayıcı çocuklar tarafından erişilebilir Variables değişken adını veya değişken dizini koleksiyonda kullanarak topluluğu.

Bir değişken görünürlüğünü yukarıdan aşağıya doğru kapsamı nedeniyle paket düzeyinde bildirilen değişkenler paketindeki tüm kapsayıcılara görülebilir.Bu nedenle, Variables Koleksiyon bir kapsayıcı üzerinde ek olarak, kendi değişkenleri üst ait tüm değişkenleri içerir.

Bunun tersi olarak, bir göreve içerdiği değişkenleri de sınırlıdır kapsam görünürlük ve göreve yalnızca görünür öğeler.

Paket, diğer paketleri çalıştırıyorsa, değişkenleri tanımlanan kapsam arama paketi adlı bir paket için kullanılabilir.Aynı adlı bir değişken adında paketinde bulunmaktadır tek özel durum oluşur.Bu çakışma ortaya çıktığında, Aranan paket değişken değer arama paketinden değerini geçersiz kılar.Tanımlanan değişkenlerin kapsam adlı bir paket hiçbir zaman arama paket kullanılabilir.

Aşağıdaki kod örneği, değişken programsal olarak oluşturur. myCustomVar, paket kapsamında ve sonra paket, kişinin adını, veri türü, yazdırma ve değeri için görünen değişkenler arasında 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();
    }
  }
}
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ı:

Değişken: Olayıiptalet, ınt32, 0

Değişken: CreationDate (DateTime, 18/4/2003 11:57:00 AM

Değişken: CreatorComputerName, dize

Değişken: OluşturucuAdı, dize

Değişken: ExecutionInstanceGUID, dize, {237AB5A4 7E59 4 FC 9 - 8 D 61 E8F20363DF25}

Değişken: Dosyaadı, dize, Önemsiz

Değişken: InteractiveModeBoole, yanlış

Değişken: Localeıd, ınt32, 1033

Değişken: MachineName, dize, MYCOMPUTERNAME

Değişken: myCustomVar, dize, 3

Değişken: OfflineModeBoole, yanlış

Değişken: PackageID, dize, {F0D2E396-A6A5-42AE-9467-04CE946A810C}

Değişken: PaketAdı, dize, DTSPackage1

Değişken: StartTime (DateTime, 1/28/2005 7:55:39 AM

Değişken: > UserName, dize, < etki alanı \ < kullanıcı kimliği >

Değişken: VersionBuild, ınt32 198

Değişken: VersionComments, dize

Değişken: VersionGUID, dize, {90E105B4-B4AF-4263-9CBD-C2050C2D6148}

Değişken: VersionMajor, ınt32, 1

Değişken: VersionMinor, ınt32, 0

Dikkat edin, tüm değişkenlerin kapsamlı Sistem ad, paket kullanılabilir.Daha fazla bilgi için bkz:Sistem değişkenleri.

Ad alanları

Microsoft SQL Server Integration Services (SSIS) değişkenleri bulunduğu; iki varsayılan ad sağlar. Kullanıcı and Sistem ad.Varsayılan olarak, geliştirici tarafından oluşturulmuş özel değişken eklenen Kullanıcı ad alanı.Sistem değişkenleri bulunması Sistem ad alanı.Ek ad boşlukları dışında oluşturabileceğiniz Kullanıcı Özel değişkenlerin ve ad adını değiştirebilirsinizKullanıcı ad, ancak ekleyemez veya "değişkenlerini değiştirmeSistem ad veya farklı bir ad Ata Sistem değişkenleri.

Kullanılabilir sistem değişkenleri kapsayıcı türüne bağlı olarak değişir.Sistem değişkenlerini paketleri, kapsayıcılar, görevler ve olay işleyicileri için kullanılabilir bir listesi için bkz: Sistem değişkenleri.

Değer

özel değişken değerinin bir hazır bilgi ya da bir ifade olabilir:

  • Değişken, sabit bir değer içermesini istiyorsanız küme değeri, Value() özellik.

  • Değer olarak, deyimin sonuçlarlarını kullanın böylece bir ifade içeren değişken isterseniz küme EvaluateAsExpression() değişkene özelliği trueve bir ifade Expression() özellik. Çalışma sırasında saat deyimi değerlendirilir ve ifade sonucu değişken değeri olarak kullanılır.Örneğin, bir değişken ifade özellik ise "100 * 2""100 * 2", değişken değeri 200 olarak değerlendirir.

Bir değişken için açıkça yapamazsınız küme değeri, DataType(). The DataType() value is inferred from the initial value assigned to the variable, and cannot be changed afterward.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. EvaluateAsExpression() için true, deyim atar. "100 * 2" değişken, ifade özelliğine ve sonra değişken değerini verir.

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

Örnek çıktı:

ifade Değişkenim için: 100 * 2

Değişkenim değeri: 200

Ifade, kullanılan geçerli bir ifade olmalıdır SSIS ifade sözdizimi. Hazır bilgi, değişken ifadeler, işleç ve işlevleri sağlayan ifade sözdizimi, izin verilen ancak ifadeler diğer değişkenler veya sütunları başvuramaz.Daha fazla bilgi için bkz:Tümleştirme Hizmetleri ifade başvurusu.

Yapılandırma dosyaları

Bir yapılandırma dosyası özel bir deðiþken içeriyorsa, çalışma sırasında değişken güncelleştirilebilir saat.Bu paket çalıştığında, ilk pakette değişken değeri yapılandırma dosyasından yeni bir değerle değiştirilir, anlamına gelir.Paket, farklı bir değişken değerlerini gerektiren birden çok sunucuya dağıtıldığında bu değiştirme yöntemi yararlıdır.Örneğin, değişken sayısı belirtebilirsiniz bir Foreach döngü kapsayıcı, iş akışı yinelenme hata yükseltildiğinde, e-posta için bir olay işleyicisi gönderir alıcılar listesi veya paket başarısız olmadan önce oluşabilecek hataların sayısını değiştirme.Bu değişkenler, her ortam için yapılandırma dosyalarında dinamik olarak sağlanır.Bu nedenle, yalnızca okuma/yazma 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 icon (small) Tümleştirme Hizmetleri ile güncel kalın

Karşıdan yüklemeler, makaleleri, örnekler ve en son Microsoft video yanı sıra, seçili topluluğun çözümleri için ziyaret Integration Services sayfa MSDN veya TechNet:

Bu güncelleştirmelerin otomatik bildirim için kullanılabilir RSS akışlarına abone olmak sayfa.