Aracılığıyla paylaş


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

Değişkenleri olanaklı hale getirir diğer nesneleri ile veri alışverişi Script görev paket.Daha fazla bilgi için bkz: Tümleştirme Hizmetleri değişkenleri.

Komut dosyası görev kullanır Variables özellik Dts nesnesi için okuma ve yazma için Variable nesneleri paket.

Not

The Value property of the Variable class is of type Object.Komut dosyası görev olduğundan Option Strict , etkin, dönüştürmelisiniz Value önce it. kullanarak uygun türü özellik

Varolan değişkenlerini ekleme ReadOnlyVariables ve ReadWriteVariables listeler Komut dosyası görev Düzenleyicisi özel bir komut dosyası kullanılabilir hale getirmek için.Değişken adları büyük küçük durum duyarlı olduğunu unutmayın.Komut dosyası içinde değişkenleri her iki türdeki erişmek Variables özellik Dts nesne.Use Value özellik okuma ve yazma için bağımsız değişkenler.Komut dosyası görev komut dosyasını okur ve değişkenlerin değerlerini değiştirir gibi kilitleme saydam olarak yönetir.

Kullanabileceğiniz Contains yöntem, Variables koleksiyon tarafından döndürülen Variables özellik için kod. kullanmadan önce bir değişken varlığını denetle

Ayrıca VariableDispenser özellik (Dts.VariableDispenser) komut dosyası görev. değişkenleri çalışmak içinKullanırken VariableDispenser, her iki kilitleme işlemesi gerekir semantik ve kendi kodunu. değişken değerleri için veri türlerine çevrimKullanmanız gerekebilir VariableDispenser yerine Variables tasarım zamanında kullanılabilir olmayan bir değişken ile çalışmak istiyorsanız, özellik saat ancak programlı çalışma zamanında oluşturulan saat.

Foreach döngü kapsayıcı içinde kod görev kullanma

Bir komut dosyası görevi bir Foreach döngü kapsayıcı içinde sürekli olarak çalıştığında, komut dosyası genellikle numaralayıcı geçerli öğe içeriğini çalışmak gerekiyor.Ö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 geçerli satırda veri sütunlarının içeriklerini bilmek ister.

Değişkenleri Foreach döngü kapsayıcı komut dosyası görev arasındaki bu iletişimi mümkün kılar.Üzerinde Değişken eşleştirmeleri sayfa Foreach döngü Düzenleyicisi'ni, her öğeyi tek bir numaralandırılmış öğe tarafından döndürülen veri değişkenleri atamak.Örneğin, bir Foreach dosya numaralayıcı yalnızca bir dosya adı dizin 0 döndürür ve Script görev içinde kullanmak istediğiniz her sütun için farklı bir değişken eşlemek birkaç veri sütunlarının her satırda verir bir sýralayýcý gerektiriyor, ancak bu nedenle yalnızca bir değişken eşleme.

Numaralandırılan öğe değişkenleri için eşlenen sonra sonra eşlenen değişkenleri için eklemeniz gerekir ReadOnlyVariables özellik Script sayfa Komut dosyası görev Düzenleyicisi komut kullanılabilir hale getirmek için.Görüntü dosyalarını bir klasörde işleyen bir Foreach döngü kapsayıcı içinde kod görev örneği için bkz: Görüntülerle Script görev ile çalışma.

Örnek değişkenleri

Aşağıdaki örnek, nasıl erişebilir ve değişkenleri belirlemek için bir komut dosyası görevi gösterir yol , paket iş akışı.Tamsayı değişken adında oluşturulan örnek varsayar CustomerCount ve MaxRecordCount ve bunlara eklenen 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ük ise, MaxRecordCount, komut dosyası görev raporları hatası.Bir hata ortaya çıktığında çünkü MaxRecordCount eşiği aşılabilir, hata yol iş akışı tüm gerekli temiz-kurduğunuz uygulayabilirsiniz

Örnek başarıyla 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 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.