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:
Çalışma sırasında bir paket özelliklerini güncelleştirin saat.
Çalışma sırasında Transact-SQL deyimleri için parametre değerlerini doldurmak saat.
Bir Foreach döngü akışını denetler.Daha fazla bilgi için bkz:Bir denetim akış için numaralandırma ekleme.
Bir ifade kullanımı ile öncelik kısıtlaması denetler.Bir öncelik kısıtlaması, kısıtlama tanımı içinde değişkenleri içerebilir.Daha fazla bilgi için bkz:Ifadeler için önceliği kısıtlama ekleme.
For döngüsü, bir koşullu yineleme denetim kapsayıcı.Daha fazla bilgi için bkz:Yineleme için bir denetim akışı ekleme.
Değişken değerleri içeren bir ifade oluşturun.
Tüm kapsayıcı türleri için özel değişkenleri oluşturabilirsiniz: paketleriForeach döngü kapsayıcılar,Döngü için kapsayıcılar,Sıra kapsayıcılar TaskHosts ve olay işleyicileri.Daha fazla bilgi için bkz: Tümleştirme Hizmetleri değişkenleri ve Paketlerinde değişkenleri kullanma.
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..
|