Program aracılığıyla Deðiþkenlerle Çalýþmak

Değişkenleri olan bir biçimde dinamik olarak küme değerler ve denetim işlemleri paketleri, kapsayıcılar, görevleri ve olay işleyicileri.Değişkenleri de öncelik 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 kapsayıcı kendi sahip Variables koleksiyon.Yeni bir değişken oluşturulduğunda, üst kapsam içinde olan kapsayıcı.Paketi kapsayıcı kapsayıcı hiyerarşisinin en üstünde olduğundan, değişkenleri paketi kapsam işlev ile ister genel değişkenleri ve paket içindeki tüm kapsayıcılara görülebilir.Değişkenleri koleksiyonu kapsayıcı çocuklar tarafından da erişilebilir kapsayıcı ile Variables koleksiyonu, kullanarak bir değişkenin adını veya değişken dizinde koleksiyonu.

Yukarıdan aşağıya doğru bir değişken görünürlüğünü kapsamlı çünkü at değişkenlerin paket düzeyi tüm kapsayıcılara görünür paket.Bu nedenle, Variables koleksiyon bir kapsayıcı değişkenleri kendi yanında üst ait olan tüm değişkenleri içerir.

Bir görevi bulunan değişkenler de tam tersine, sınırlı olduğunu kapsam ve görünürlük ve göreve yalnızca görünür.

Değişkenleri paketi diğer paketleri çalışırsa, tanımlanan kapsam arama paketi olarak adlandırılan paketi kullanılabilir.Tek özel durum aynı adlı bir değişkene denir bulunuyorsa oluşur paket.Bu çarpışma gerçekleştiğinde, çağrılan paket değişken değer arayan paketinden değeri geçersiz kılar.Tanımlanan değişkenleri kapsam adlı paketi hiçbir zaman arama paketi kullanılabilir.

Aşağıdaki kod örneği, programlı bir değişken oluşturur myCustomVar, paket kapsam adresindeki paket, kendi adı, veri türü, yazdırma ve değer. görünür olan tüm değişkenleri aracılığıyla sırayla dolaşır ve

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ı:

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

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

Ad alanları

Microsoft SQL Server Integration Services (SSIS) provides two default namespaces where variables reside; User and System namespaces.Varsayılan olarak, geliştirici tarafından oluşturulan herhangi bir özel değişken eklenen kullanıcı ad.Sistem değişkenleri bulunan Sistem ad.Dışında ek ad boşlukları oluşturmak kullanıcı tutacak özel değişkenleri ve ad alanı adını değiştirebilirsiniz kullanıcı ad, ancak ekleyemez veya değişkenleri değiştirmek Sistem ad alanı veya Sistem değişkenleri için farklı bir ad atayın.

Kullanılabilir Sistem değişkenleri kapsayıcı türüne bağlı olarak farklılık gösterir.Paketleri kapsayıcıları, görevleri ve olay işleyicileri için kullanılabilir Sistem değişkenleri listesi için bkz: Sistem değişkenleri.

Değer

özel değişken değeri sabit değer olabilir veya bir ifade:

  • Bir hazýr bilgi deðeri içeren değişken isterseniz küme değeri, Value özellik.

  • Değişken bir ifade içeriyor, ifadenin sonuçlarını değer olarak, böylece isterseniz küme EvaluateAsExpression özellik değişken için trueve bir ifade Expression özellik.Çalışma sırasında saatifadesi değerlendirilir ve ifadenin sonucunu değişkenin değeri 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, ifade atar "100 * 2" için expression özellik değişkenin değerinin değişken. çıktısını verir ve

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ı:

Expression for myVar: 100 * 2

Value of myVar: 200

İfade kullanan geçerli bir ifade olmalıdır SSIS ifade sözdizimi.Harflerin işleçleri ve işlevleri ifade sözdizimi sağlar, ek olarak değişken ifadelerde 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 İfadesi Başvurusu.

Yapılandırma dosyaları

Değişken bir yapılandırma dosyası özel değişken içeriyorsa, çalışma zamanında güncelleştirilebilir saat.Bu paket çalıştırıldığında, başlangıçta paketindeki değişkenin değeri arasında yeni bir değer ile değiştirilir, anlamı yapılandırma dosyası.paket değişken farklı değerler gerektiren birden çok sunucuya dağıtılır yerini bu teknik yararlıdır.Örneğin, bir değişken sayısını belirtebilirsiniz bir Foreach döngü kapsayıcı alıcılar, iş akışı veya listesini yineler, bir olay işleyicisi gönderdiği için bir hata ortaya çıktığında e-posta veya paket başarısız olmadan önce oluşan hataları sayısını değiştirme.Bu değişkenler her ortam için yapılandırma dosyaları dinamik olarak verilmiştir.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 simgesi (küçük)Integration Services ile güncel kalın

En son karşıdan yüklemeler, makaleler, örnekler ve seçilen topluluk çözümleri yanı sıra Microsoft videolar için ziyaret Integration Services sayfa msdn veya TechNet:

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