Kodlama ve kod bileşen hata ayıklama

Içinde SSIS Tasarımcı, komut dosyası bileşeni iki modu vardır: Tasarım modunda meta veriler ve kodu Tasarım modunda. Açtığınızda Komut dosyası dönüştürme Düzenleyicisi, meta veriler tasarım modunda, meta veriler yapılandırma bileşeni girer ve küme Bileşen Özellikleri.Sonra Kod bileşeninin özelliklerini ayarlamak ve meta veriler tasarım modunda, giriş ve çıkışlarını yapılandırılmış özel komut dosyanızı yazmak için kod Tasarım moduna geçebilirsiniz.meta veriler tasarım modunda ve kod Tasarım modu hakkında daha fazla bilgi için bkz: Bileşen Kod Düzenleyicisi'nde komut dosyası bileşeni'ni yapılandırma.

Kod Tasarım Modu'nda komut dosyası yazma

Komut dosyası bileşen geliştirme ortamı

To write your script, click Edit Script on the Script page of the Script Transformation Editor to open the Microsoft Visual Studio Tools for Applications (VSTA) IDE.Tüm standart özelliklerini VSTA IDE içeren Visual Studio Renk kodlu gibi .NET ortamında Visual Studio Düzenleyici, ıntellisense ve Nesne Gözatıcısı.

Script code is written in Microsoft Visual Basic 2008 or Microsoft Visual C# 2008.Komut dosyası dili ayarlayarak, belirttiğiniz ScriptLanguage özellikKomut dosyası dönüştürme Düzenleyicisi.Başka bir programlama dili kullanmak isterseniz, özel bir derleme yaptığınız dil seçimindeki geliştirmek ve komut dosyası bileşen kodunda işlevselliğini çağırmanıza.

Komut dosyası komut dosyası bileşeni oluşturmak, paket tanımı içinde depolanır.Ayrı bir komut dosyası yok.Bu nedenle, paket dağıtım komut dosyası bileşeninin kullanımını etkilemez.

Not

Paket tasarım sırasında komut dosyası kodu, geçici olarak bir proje dosyasına yazılır.Önemli bilgileri bir dosyada saklamak, olası bir güvenlik sorununa neden olduğu için komut dosyası kodu içinde parolalar gibi önemli bilgileri içermez önerilir.

Varsayılan olarak, Option Strict IDE içinde devre dışı bırakılır.

Komut dosyası bileşeni Proje yapısı

Komut dosyası bileşeni'nin yazması gereken kod miktarını azaltır altyapı kodu oluşturabilir kuvvettir.Bu olgu, giriş ve çıkışlarını ve sütun ve özellikleri sabit ve bilinen bir önceden, olgu kullanır.Bu nedenle, bileşenin meta veriler yaptığınız sonraki değişiklikler yazdığınız kodun geçersiz kılabilir.Bu paket çalışma sırasında derleme hataları neden olur.

Öğeleri ve sınıfları komut dosyası bileşeni projedeki proje

Kod Tasarım moduna geçtiğinizde, VSTA IDE açar ve görüntüler ScriptMain Proje öğe. The ScriptMain project öğe contains the editable ScriptMain class, which serves as the entry point for the script and which is where you write your code. Sınıf kodu öðelerin kod görev için seçtiğiniz programlama dilini bağlı olarak farklılık gösterir.

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

  • The ComponentWrapper project öğe contains three classes:

    • The UserComponent class, which inherits from ScriptComponent and contains the methods and properties that you will use to process data and to interact with the paket. The ScriptMain class inherits from the UserComponent class.

    • C Connections koleksiyon sınıfı Bağlantı Yöneticisi sayfasında komut dosyası dönüştürme Düzenleyicisi'nin seçili bağlantıları başvurular içeriyor.

    • C Variables Girilen değişken başvuruları içeren koleksiyon sınıfı ReadOnlyVariable ve ReadWriteVariables özellikleri Komut dosyası sayfaKomut dosyası dönüştürme Düzenleyicisi.

  • The BufferWrapper project öğe contains a class that inherits from ScriptBuffer for each input and output configured on the Inputs and Outputs sayfa of the Script dönüştürme Editor.Bu sınıfların her biri, yapılandırılmış girdi ve çıktı sütunları ve veri sütunları içeren Akış Arabellek karşılık gelen yazılı erişimci özelliklerini içerir.

Bu nesneler, yöntemler ve Özellikler'i kullanma hakkında daha fazla bilgi için bkz: Komut dosyası Bileşen Nesne modeli anlama. Bu sınıfların özellikleri ve yöntemleri, komut dosyası bileşeni belirli bir tür kullanma hakkında daha fazla bilgi için bkz: Ek komut dosyası bileşeni örnekleri. Örnek konuları, tüm kod örnekleri de içerir.

Dönüştürme, komut dosyası bileşeni yapılandırdığınızda ScriptMain Proje öğe aşağıdaki autogenerated kod içerir:

' 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
        */
    }

}

Komut dosyası bileşeni projedeki ek proje öğeleri

Komut dosyası bileşeni projeyi varsayılan dışında bir öğe içerebilir ScriptMain öğe. Sınıflar, Modüller, kod dosyaları ve klasörleri projeye ekleyebilirsiniz ve madde gruplarını düzenlemek için klasörleri kullanabilirsiniz.

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

Komut dosyası bileşeni projedeki başvuruları

Komut dosyası görev proje içinde sağ tıklatarak yönetilen birleştirmeler için başvuru ekleyebilirsiniz. Proje Gezginive sonra tıklatarak.Başvuru Ekle.Daha fazla bilgi için bkz:Diğer derlemeler komut dosyası kullanan Solutions, başvuran.

Not

Proje başvuru VSTA ıDE'DE görüntüleyebilirsiniz Sınıf görüntüle or in Proje Gezgini.Aşağıdaki pencerelerden birini açın Görünümü menüsü.Yeni bir başvuruya ekleyebilirsiniz Proje menüsünde,Proje Gezgini, or from Sınıf görüntüle.

Ile etkileşim paket içinde komut dosyası bileşeni

Özel komut dosyası komut dosyası bileşen yazdığınız erişmek ve kullanmak ve otomatik oluşturulan temel sınıfları, kesinlikle yazılan erişimcileri aracılığıyla gelen içeren Bağlantı Yöneticisi paketini.Ancak, komut dosyanız için kullanılabilir duruma getirmek istiyorsanız, kod ve Tasarım moduna girmeden önce değişkenleri hem de Bağlantı Yöneticisi yapılandırmalısınız.Ayrıca olaylarını ve oturum açma komut dosyası bileşeni kodunuzdan gerçekleştirin.

Komut dosyası bileşeni projedeki autogenerated proje öğeler, paket ile etkileşim için aşağıdaki nesneleri, yöntemleri ve özellikleri sağlar.

Paket özelliği

Erişim yöntem

Variables

Adlandırılmış ve yazılı erişimci özelliklerinde kullanmak Variables koleksiyon sınıfında ComponentWrapper Proje öğesi aracılığıyla gösterilen, Variables özellik ScriptMain sınıf.

The PreExecute yöntem can access only read-only variables. The PostExecute yöntem can access both read-only and read/write variables.

Bağlantılar

Adlandırılmış ve yazılı erişimci özelliklerinde kullanmak Connections koleksiyon sınıfında ComponentWrapper Proje öğesi aracılığıyla gösterilen, Connections özellik ScriptMain sınıf.

Olayları

Olayları kullanarak yükseltmek ComponentMetaData() özellik ScriptMain sınıf ve Fire<X> yöntemleri IDTSComponentMetaData100 arabirim.

Günlüğe kaydetme

Günlük kullanarak gerçekleştirme Log(String, Int32, array<Byte[]) yöntem ScriptMain sınıf.

Komut dosyası bileşen hata ayıklama

Komut dosyası bileşeni kesmenoktaları kullanımını desteklemiyor.Bu nedenle, kodunuz içinde adım edemez ve paket çalışırken değerleri inceleyin.Aşağıdaki yöntemleri kullanarak komut dosyası bileşeni yürütülmesini izleyebilirsiniz:

  • Yürütme işlemi durdurmak ve kullanarak modla ilgili bir ileti görüntülemek MessageBox.Show yöntemde System.Windows.Forms ad alanı.(Hata ayıklama işlemini tamamladıktan sonra bu kodu kaldırın.)

  • Bilgi iletileri, uyarı ve hatalar için olay yükseltin.The FireInformation, FireWarning, and FireError methods display the olay description in the Visual Studio Output window.Ancak, FireProgress yöntem, Console.Write yöntem, ve Console.WriteLine yöntem görüntüleme herhangi bir bilgi Çıkış penceresini açın.Gelen iletileri FireProgress olay görünür üzerindeki Ilerleme durumu tab of SSIS Tasarımcı. Daha fazla bilgi için bkz:Olaylar Kod bileşenindeki yükseltme.

  • Günlük olayları veya kullanıcı tanımlı iletileri günlüğe kaydetme sağlayıcıları etkin.Daha fazla bilgi için bkz:Oturum açma komut dosyası bileşeni olarak.

Bir hedef için verileri kaydetmeden veya dönüştürme, kaynağı olarak yapılandırılmış bir komut dosyası bileşeni çıkışını incelemek isterseniz, veri akışı ile durdurabilirsiniz bir Satır sayısı dönüştürme ve komut dosyası bileşeni, çıkışı bir veri görüntüleyicisi iliştirin. Veri görüntüleyicileri hakkında daha fazla bilgi için bkz: Hata ayıklama veri akışı.

Bu Bölümde

Komut dosyası bileşeni kodlaması hakkında daha fazla bilgi için bu bölümde aşağıdaki konulara bakın.

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.