Aracılığıyla paylaş


Komut dosyası görev değişkenleri kullanma

Değişkenler komut görevin diğer nesnelerle veri değişimi sağlamak paket.Daha fazla bilgi için bkz:Tümleştirme Hizmetleri değişkenleri.

Komut dosyası görev kullanır Variables() özellik Dts Nesne okuma ve yazma Variable Paketteki nesneleri.

Not

The Value() özellik of the Variable class is of type Object. Komut dosyası görev olduğundan Option Strict etkinleştirildiğinde, dönüştürmelisiniz Value() özellik kullanabilmeniz için önce uygun türü.

Varolan değişkenlere eklediğiniz ReadOnlyVariables() ve ReadWriteVariables() listelerinin Komut dosyası görev Düzenleyicisi özel bir komut dosyası tarafından kullanılabilir duruma getirmek için.Değişken adları büyük/küçük durum duyarlı olduğunu unutmayın.Her iki türdeki değişkenler, komut dosyası içinde erişim Variables() özellik Dts nesne. Use Value özellik, okuma ve bağımsız değişkenler için. Görev komut dosyası, komut dosyasını okur ve değişkenlerin değerlerini değiştirir kilitleme saydam olarak yönetir.

Kullanabileceğiniz Contains(Object) yöntem Variables döndürülen koleksiyon Variables() kodunuzda kullanmadan önce bir değişken varlığını denetlemek için özellik'ı tıklatın.

Ayrıca VariableDispenser() () özellikDts.VariableDispenser) komut dosyası görev değişkenleri çalışmak. Kullanırken VariableDispenser(), kendi kodunuzu kilitleme semantik hem de çevrim değişken değerleri için veri türlerini işlemesi gerekir. Kullanmanız gereken VariableDispenser() yerine Variables() Tasarım sırasında kullanılabilir olmayan bir değişkenle birlikte çalışmak isterseniz özellik saat programsal olarak çalışma sırasında oluşturulur, ancak saat.

Bir Foreach döngü kapsayıcı içindeki komut dosyası görev kullanma

Ne zaman bir komut dosyası görev sürekli bir Foreach döngü içinde çalışır kapsayıcı, komut dosyasının içeriğini numaralayıcı geçerli öğe çalışmak genellikle gerekir.Örneğin, bir Foreach dosya numaralayıcı kullanırken, komut dosyası geçerli dosya adını bilmesi gerekir; bir Foreach ADO numaralayıcı kullanırken, komut dosyasının geçerli satırda veri sütunlarının içeriklerini bilmeniz gerekir.

Değişkenleri Foreach döngü kapsayıcı kod görev arasındaki bu iletişimi sağlar.Üzerinde Değişken eşlemeler sayfaForeach döngü Düzenleyicisi, her öğeyi tek bir numaralanmış öğe tarafından döndürülen veri için atama değişkenleri.Örneğin, bir Foreach dosya numaralayıcı yalnızca dosya adı altında Dizin 0 döndürür ve komut dosyası görev kullanmak istediğiniz her sütun için farklı bir değişken eşlemek birkaç veri sütunu, her satırda döndüren bir Numaralandırıcı gerekir; bu nedenle yalnızca bir değişken eşleme gerektirir.

Sonra değişkenlere numaralandırılmış öğeler eşlenen sonra eşleşen değişkenler için eklemelisiniz ReadOnlyVariables özellik üzerindeki Komut dosyası sayfaKomut dosyası görev Düzenleyicisi , komut dosyanız için kullanılabilir duruma getirmek için.Resim dosyalarını bir klasörde işleyen bir Foreach döngü kapsayıcı içindeki komut dosyası görev örneği için bkz: Komut dosyası göreve görüntüleri ile çalışma.

Değişkenleri örneği

Aşağıdaki örnek komut dosyası göreve belirlemek için kullanmak gösterilmiştir yol, paket iş akışı.Örnek adında bir tamsayı değişken oluşturduğunuz varsayılır. CustomerCount ve MaxRecordCount ve bunları ReadOnlyVariables koleksiyon, Komut dosyası görev Düzenleyicisi.The CustomerCount variable contains the number of customer records to be imported.Değeri değerinden büyükse MaxRecordCount, görev komut dosyası hata bildirir. Çünkü bir hata oluştuğunda MaxRecordCount eşiği aşıldı, iş akışı hata yolunu tüm gerekli temizleme uygulayabilirsiniz.

Başarıyla örnek derlemek için Microsoft.SqlServer.ScriptTask bir başvuru eklemeniz gerekir derleme.

Public Sub Main()

    Dim customerCount As Integer
    Dim maxRecordCount As Integer

    If Dts.Variables.Contains("CustomerCount") = True AndAlso _
        Dts.Variables.Contains("MaxRecordCount") = True Then

        customerCount = _
            CType(Dts.Variables("CustomerCount").Value, Integer)
        maxRecordCount = _
            CType(Dts.Variables("MaxRecordCount").Value, Integer)

    End If

    If customerCount > maxRecordCount Then
            Dts.TaskResult = ScriptResults.Failure
    Else
            Dts.TaskResult = ScriptResults.Success
    End If

End Sub
using System;
using System.Data;
using Microsoft.SqlServer.Dts.Runtime;

public class ScriptMain
{



    public void Main()
    {
        int customerCount;
        int maxRecordCount;

        if (Dts.Variables.Contains("CustomerCount")==true&&Dts.Variables.Contains("MaxRecordCount")==true)

        {
            customerCount = (int) Dts.Variables["CustomerCount"].Value;
            maxRecordCount = (int) Dts.Variables["MaxRecordCount"].Value;

        }

        if (customerCount>maxRecordCount)
        {
            Dts.TaskResult = (int)ScriptResults.Failure;
        }
        else
        {
            Dts.TaskResult = (int)ScriptResults.Success;
        }

    }

} 
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.