Kodlama ve kod bileşen hata ayıklama

De SSIStasarımcı, Script bileşeni iki modu vardır: meta veri Tasarım modunda ve kod tasarım modunda. Açtığınızda Komut dosyası dönüşümü Düzenleyicisi, bileşen meta verileri yapılandırma ve ayarlama bileşen özellikleri meta veri Tasarım modunda girer. Script bileşeni özelliklerini ayarlamak ve giriş ve çıkışları meta veri Tasarım modunda yapılandırılmış sonra özel komut dosyanızı yazmak için kod tasarım moduna geçiş yapabilirsiniz. Meta veri Tasarım modunda ve kod tasarım modu hakkında daha fazla bilgi için bkz: Script bileşeni Script bileşen düzenleyiciyi içinde yapılandırma.

Komut dosyası kodu tasarım modunda yazma

Komut dosyası bileşen geliştirme ortamı

Komut dosyanızı yazmak için tıklayın Komut dosyası Düzenle üzerine Script sayfası Komut dosyası dönüşümü Düzenleyicisi açmak için Microsoft  Visual StudioAraçları uygulamaları (vsta) IDE. vsta IDE tüm standart özellikleri içeren Visual Studio.Renk kodlu gibi net ortamında Visual StudioEditör, IntelliSense ve nesne tarayıcısı.

Komut dosyası kodu yazılı Microsoft  Visual Basic 2008ya Microsoft   Visual C# 2008. Belirttiğiniz komut dosyası dili ayarlayarak ScriptLanguage Emlak Komut dosyası dönüşümü Düzenleyicisi. Başka bir programlama dili kullanmak isterseniz, özel bir derleme seçtiğiniz dil geliştirmek ve işlevselliğini Script bileşeni kod arama.

Script bileşeni oluşturma komut paket tanımının içinde depolanır. Orada ayrı komut dosyası yok. Bu nedenle, Script bileşeni kullanımı paketi dağıtım etkilemez.

[!NOT]

Paket tasarımını yaparken kod geçici bir proje dosyasına yazılır. Hassas bilgileri bir dosyada saklamak olası bir güvenlik riski olduğundan, komut dosyası kodu şifreleri gibi hassas bilgileri içermeyen önerilir.

Varsayılan olarak, Option StrictIDE içinde devre dışı bırakıldı.

Script bileşeni proje yapısı

Script bileşeni yazmak gereken kod miktarını azaltır altyapı kodu oluşturabilir güçtür. Bu özellik, giriş ve çıkışları ve sütun ve özellikleri sabit ve önceden bilinen gerçeği dayanır. Bu nedenle, bileşenin metadata-e doğru yapmak daha sonraki değişiklikler yazmış olduğunuz kodu geçersiz kılabilir. Bu paketi yürütme sırasında derleme hataları neden olur.

Proje öğeleri ve Script bileşeni projedeki sınıfları

Kod tasarım moduna geçtiğinizde, vsta IDE açar ve görüntüler ScriptMainProje öğesi. ScriptMainProje öğesi düzenlenebilir içerir ScriptMainolduğu yere kodunuzu yazın ve giriş olarak gören noktası komut sınıfı,. Sınıfındaki kod öğeler Script görev için seçtiğiniz programlama diline bağlı olarak değişiklik gösterebilir.

Komut dosyası proje iki ek otomatik oluşturulan salt okunur proje öğelerini içerir:

  • ComponentWrapperProje öğesi içeren üç sınıf:

    • UserComponentOlan devraldığı sınıfı, ScriptComponentve yöntemleri ve verileri işlemek ve paketi ile etkileşim için kullanacağınız özelliklerini içerir. ScriptMainSınıf devralır UserComponentsınıf

    • A ConnectionsBağlantı Yöneticisi sayfasında komut dosyası dönüşümü Düzenleyicisi seçili bağlantıları başvurular içeren koleksiyonu sınıf.

    • A Variablesgirilen değişkenleri başvurular içeren koleksiyon sınıfı ReadOnlyVariableve ReadWriteVariablesözellikleri Script sayfası Komut dosyası dönüşümü Düzenleyicisi.

  • BufferWrapper, Devraldığı sınıf proje öğesi içeren ScriptBufferher giriş ve çıkış yapılandırılmış giriş ve çıkış sayfası Komut dosyası dönüşümü Düzenleyicisi. Bu sınıfların her biri yapılandırılmış girdi ve çıktı sütunları ve verileri sütunlar içeren akış arabellekleri karşılık yazılı erişeni özelliklerini içerir.

Bu nesneleri, yöntemleri ve özellikleri kullanma hakkında daha fazla bilgi için bkz: Komut dosyası bileşen nesne modeli anlama. Yöntemleri ve özellikleri bu sınıfları Script bileşeni belirli bir türde kullanma hakkında daha fazla bilgi için bkz: bölüm Ek Script bileşeni örnekleri. Örnek konular da tam kod örnekleri içerir.

Dönüşüm, Script bileşeni yapılandırdığınızda ScriptMainProje öğesi içeren aşağıdaki kodu autogenerated. Kod şablonu nasıl almak ve SSIS, değişkenler, olaylar ve bağlantılar gibi nesnelerle ek bilgi ve komut dosyası bileşeni genel bakış da sağlar.

' Microsoft SQL Server Integration Services Script Component
' Write scripts using Microsoft Visual Basic 2008.
' ScriptMain is the entry point class of the script.

Imports System
Imports System.Data
Imports System.Math
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper

<Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute> _
<CLSCompliant(False)> _
Public Class ScriptMain
    Inherits UserComponent

    Public Overrides Sub PreExecute()
        MyBase.PreExecute()
        '
        ' Add your code here for preprocessing or remove if not needed
        '
    End Sub

    Public Overrides Sub PostExecute()
        MyBase.PostExecute()
        '
        ' Add your code here for postprocessing or remove if not needed
        ' You can set read/write variables here, for example:
        ' Me.Variables.MyIntVar = 100
        '
    End Sub

    Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
        '
        ' Add your code here
        '
    End Sub

End Class
' Microsoft SQL Server Integration Services Script Component
' Write scripts using Microsoft Visual Basic 2008.
' ScriptMain is the entry point class of the script.

Imports System
Imports System.Data
Imports System.Math
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper

<Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute> _
<CLSCompliant(False)> _
Public Class ScriptMain
    Inherits UserComponent

    Public Overrides Sub PreExecute()
        MyBase.PreExecute()
        '
        ' Add your code here for preprocessing or remove if not needed
        '
    End Sub

    Public Overrides Sub PostExecute()
        MyBase.PostExecute()
        '
        ' Add your code here for postprocessing or remove if not needed
        ' You can set read/write variables here, for example:
        ' Me.Variables.MyIntVar = 100
        '
    End Sub

    Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
        '
        ' Add your code here
        '
    End Sub

End Class
/* Microsoft SQL Server Integration Services user script component
*  Write scripts using Microsoft Visual C# 2008.
*  ScriptMain is the entry point class of the script.*/

using System;
using System.Data;
using Microsoft.SqlServer.Dts.Pipeline.Wrapper;
using Microsoft.SqlServer.Dts.Runtime.Wrapper;

[Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute]
public class ScriptMain : UserComponent
{

    public override void PreExecute()
    {
        base.PreExecute();
        /*
          Add your code here for preprocessing or remove if not needed
        */
    }

    public override void PostExecute()
    {
        base.PostExecute();
        /*
          Add your code here for postprocessing or remove if not needed
          You can set read/write variables here, for example:
          Variables.MyIntVar = 100
        */
    }

    public override void Input0_ProcessInputRow(Input0Buffer Row)
    {
        /*
          Add your code here
        */
    }

}
/* Microsoft SQL Server Integration Services user script component
*  Write scripts using Microsoft Visual C# 2008.
*  ScriptMain is the entry point class of the script.*/

using System;
using System.Data;
using Microsoft.SqlServer.Dts.Pipeline.Wrapper;
using Microsoft.SqlServer.Dts.Runtime.Wrapper;

[Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute]
public class ScriptMain : UserComponent
{

    public override void PreExecute()
    {
        base.PreExecute();
        /*
          Add your code here for preprocessing or remove if not needed
        */
    }

    public override void PostExecute()
    {
        base.PostExecute();
        /*
          Add your code here for postprocessing or remove if not needed
          You can set read/write variables here, for example:
          Variables.MyIntVar = 100
        */
    }

    public override void Input0_ProcessInputRow(Input0Buffer Row)
    {
        /*
          Add your code here
        */
    }

}

Script bileşeni projedeki ek proje öğeleri

Script bileşeni projedeki varsayılandan başka öğeler içerebilir ScriptMainMadde. Projeye sınıfları, modüller, kod dosyaları ve klasörleri ekleyebilirsiniz ve madde gruplarını düzenlemek için klasörleri kullanabilirsiniz.

Eklediğiniz tüm öğeleri paketi içinde kalıcı.

Script bileşeni projedeki başvuruları

Script görev projedeki sağ tarafından yönetilen derlemeler başvuruları ekleyebilirsiniz Project Explorerve o zaman tıkırtı Add Reference. Daha fazla bilgi için, bkz. Komut dosyası çözümleri diğer derlemeler başvuran.

[!NOT]

Sen-ebilmek görüş proje başvuruları vsta IDE içinde Class View veya Project Explorer. Bu pencerelerden birini açın View menü. Sen-ebilmek eklemek yeni başvuru Proje menüsü, dan Project Explorer, veya Class View.

Script bileşeni paketi ile etkileşim

Script bileşeni yazdığınız özel bir komut dosyası erişmek ve kullanmak ve kesinlikle yazılan erişimcisi içinde otomatik olarak oluşturulan temel sınıflar aracılığıyla gelen içeren bağlantı Yöneticisi paketi. Ancak, komut dosyanız için kullanılabilmesini istiyorsanız kodu tasarım moduna girmeden önce değişkenleri ve bağlantı yöneticileri yapılandırmalısınız. Ayrıca, olaylarını ve oturum açma komut dosyası bileşeni kodundan gerçekleştirmek.

Script bileşeni projedeki autogenerated proje öğeleri paketi ile etkileşim için aşağıdaki nesneleri, yöntemleri ve özellikleri sağlar.

Paket özelliği

Erişim yöntemi

Değişkenleri

Adlandırılmış ve yazılı erişeni özelliklerini kullanın Variableskoleksiyonu ComponentWrapperProje öğesi, aracılığıyla maruz Variablesözelliği ScriptMainsınıf

PreExecuteYöntemi, yalnızca salt okunur değişkenler erişebilirsiniz. PostExecuteYöntem hem salt okunur erişim ve okuma/yazma değişkenleri.

Bağlantıları

Adlandırılmış ve yazılı erişeni özelliklerini kullanın Connectionskoleksiyonu ComponentWrapperProje öğesi, aracılığıyla maruz Connectionsözelliği ScriptMainsınıf

Olaylar

Olaylarını kullanarak ComponentMetaDataözelliği ScriptMainsınıfı ve Fire<X>yöntemleri IDTSComponentMetaData100arabirimi.

Günlüğe kaydetme

Günlük kullanarak gerçekleştirmek Logyöntemi ScriptMainsınıf

Kod bileşen hata ayıklama

Script bileşeni kodunda hata ayıklamak için kod içinde en az bir kesme noktası ayarlamak ve paketi çalıştırmak için vsta IDE kapatın SQL Server Veri Akışı Araçları (SSDT). Paketi yürütme Script bileşeni girdiğinde vsta IDE yeniden açar ve kodunuzu salt okunur modunda görüntüler. Sonra yürütme, kesme noktasına ulaştığında, değişken değerlerini inceleyebilir ve kalan kod adım.

[!NOT]

Script bileşeni bir alt paketi yürütme paketi görev çalıştırılan bir parçası olarak çalıştırdığınızda komut dosyası bileşeni hata ayıklama olamaz. Script bileşeni çocuk paketi ayarlamak kesme noktaları bu durumlarda göz ardı. Ayrıca çalıştırarak alt paketi normalde hata.

[!NOT]

Birden çok komut dosyası bileşenleri içeren bir paket hata ayıklarken, bir Script bileşeni hata ayıklayıcı Için debugs gösterir. Hata ayıklayıcı tamamlarsa, durumda bir Foreach döngüsü veya döngü için kapsayıcı olarak sistem başka bir Script bileşeni hata.

Ayrıca, aşağıdaki yöntemleri kullanarak Script bileşeni yürütme da izleyebilirsiniz:

  • Yürütme kesme ve kullanarak kalıcı bir ileti görüntülemek MessageBox.Showyöntemi System.Windows.Formsnamespace. (Hata ayıklama işlemini tamamladıktan sonra bu kodu kaldırın.)

  • Bilgi iletileri, uyarı ve hata olaylarını adresini ziyaret edin. FireInformation, FireWarning, Ve FireErrorVisual Studio Olay açıklamasında yöntemlerini görüntülemek Çıkış pencere. Ancak, FireProgressyöntemi, Console.Writeyöntemi, ve Console.WriteLineyöntemi bilgileri görüntülemez Çıkış pencere. Gelen iletileri FireProgressolay görünür devam sekmesini SSIStasarımcı. Daha fazla bilgi için, bkz. Olayları Script bileşeni yükseltme.

  • Olaylar ya da kullanıcı tanımlı iletileri etkin günlüğü sağlayıcıları için oturum. Daha fazla bilgi için, bkz. Script bileşeni günlüğe kaydetme.

Sadece bir hedefe, verileri kaydetmeden bir kaynak veya bir dönüşüm olarak yapılandırılmış Script bileşeni çıktı incelemek isterseniz veri akışını durdurabilir bir Satır sayısı dönüşümüve çıktı Script bileşeni veri Görüntüleyici iliştirin. Veri görüntüleyicileri hakkında daha fazla bilgi için bkz: Hata ayıklama veri akışı.

Bu Bölümde

Script bileşeni kodlaması hakkında daha fazla bilgi için bkz: Bu bölümde aşağıdaki konular.

Dış Kaynaklar

Integration Services simgesi (küçük) Integration Services ile güncel kalın

En son karşıdan yüklemeler, makaleler, örnekler ve Microsoft video yanı sıra topluluk seçili çözümleri için ziyaret Integration ServicesMSDN sayfası:


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

Ayrıca bkz.

Kavramlar

Script bileşeni Script bileşen düzenleyiciyi içinde yapılandırma