Kodlama ve kod bileşen hata ayıklama

De SSIS Tasarımcısı, komut dosyası bileşeni iki modu vardır: meta veriler Tasarım modunda ve kod tasarım modu.Açtığınızda Komut dosyası dönüşümü Düzenleyicisi, meta veriler Tasarım modunda, meta veriler yapılandırma ve bileşen özelliklerini küme bileşen girer.Sonra küme komut dosyası bileşeni özelliklerini ve giriş yapılandırılmış ve meta veriler Tasarım modunda, özel komut dosyanızı yazmak için kod Tasarım moduna geçiş çıktısını verir.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 yapılandırma.

Komut dosyası kodu Tasarım modunda 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.vsta IDE tüm standart özelliklerini içeren Visual Studio .Renk kodlu gibi net ortamýnda Visual Studio Düzenleyen, IntelliSense ve nesne tarayıcısı.

Script code is written in Microsoft Visual Basic 2008 or Microsoft Visual C# 2008.Ayarlayarak komut dosyası dilini belirtme ScriptLanguage özellik , Komut dosyası dönüşümü Düzenleyicisi.Başka bir programlama dili kullanmak isterseniz, özel bir derleme seçim dilinizi geliştirmek ve komut dosyası bileşeni kodunda kendi işlevleri çağırmanıza.

Komut dosyası bileşen oluşturma komut dosyası saklanır paket tanımı.Hiç ayrı komut dosyası vardır.Bu nedenle, paket dağıtım komut dosyası bileşeni kullanımını etkilemez.

Not

Paket tasarlarken, komut dosyası kodu geçici olarak bir proje dosyasına yazılır.Önemli bilgileri bir dosyada saklamak olası bir güvenlik riski olduğundan, komut dosyası kodu içinde parolalar gibi önemli bilgiler eklemeyin önerilir.

Varsayılan olarak, Option Strict devre dışı IDE.

Script bileşeni proje yapısı

Komut dosyası bileşeni'nin Yaz gereken kod miktarını azaltır altyapı kodu üretebilir kuvvettir.Bu olgu, girişleri ve çıkışları ve sütun ve özellikleri sabit ve önceden bilinen gerçeği dayanır.Bu nedenle, bileşenin meta veriler için yaptığınız sonraki değişiklikler yazmış olduğunuz kodu koşullarına aykırı olabilir.Bu paket yürütme sırasında bir derleme hatası neden olur.

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

Kod Tasarım moduna geçiş yaptığınızda, vsta IDE açar ve görüntüler ScriptMain Proje öğe.The ScriptMain project item 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ındaki kod öğeler Script görev için seçtiğiniz programlama diline bağlı olarak değişebilir.

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

  • The ComponentWrapper project item 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 package.The ScriptMain class inherits from the UserComponent class.

    • A Connections , Bağlantı Yöneticisi'nin seçili bağlantıları başvurular içeren koleksiyon sýnýfýný sayfa , komut dosyası dönüşümü Düzenleyicisi.

    • A Variables girilen değişkenleri başvurular içeren Koleksiyon sýnýfýný ReadOnlyVariable ve ReadWriteVariables özelliklerine göre Script sayfa Komut dosyası dönüşümü Düzenleyicisi.

  • The BufferWrapper project item contains a class that inherits from ScriptBuffer for each input and output configured on the Inputs and Outputs page of the Script Transformation Editor.Bu sınıfların her biri yapılandırılmış girdi ve çıktı sütunları karşılık gelen yazılı erişeni özelliklerini içerir ve veri akışı arabellekleri sütunları içeren.

Bu nesneleri, yöntemleri ve özellikleri kullanma hakkında daha fazla bilgi için bkz: Komut dosyası Bileşen Nesne modeli anlama.Belirli bir komut dosyası bileşeni tür yöntemlerini ve bu sınıfların özelliklerini 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.

Komut dosyası bileşeni dönüştürme yapılandırdığınızda, ScriptMain Proje öğe aşağıdaki otomatik 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
        */
    }

}

Script bileşeni projedeki ek proje öğeleri

Script bileşeni proje Varsayılandan başka öğeler içerebilir ScriptMain öğe.Projeye sınıfları, modülleri, kod dosyaları ve klasörleri ekleyebilir ve madde gruplarını düzenlemek için klasörleri kullanabilirsiniz.

Eklediğiniz tüm öğeleri paket içinde bulunurlar.

Script bileşeni projedeki başvuruları

Script görev projedeki sağ tarafından yönetilen derlemeler başvuruları ekleyebilirsiniz Project Explorer, tıklatıp, sonra Add Reference.Daha fazla bilgi için bkz: Komut dosyası çözümleri de diğer derlemeler başvuran.

Not

vsta IDE içinde proje başvuruları görüntülemek Class View veya Project Explorer.Bu pencerelerden birini açın View menü.Gelen yeni bir başvuru ekleyebilir Proje menüsü, dan Project Explorer, ya da Class View.

Komut dosyası bileşeni paketi ile etkileşim

Komut dosyası bileşeni içinde yazdığınız özel bir komut dosyası erişmek ve değişkenleri ve bağlantı yöneticileri içeren gelen paket aracılığıyla otomatik oluşturulan ana sınıflarında erişimcileri türü kesin olarak belirtilmiş.Ancak, komut dosyanız için kullanılabilir hale getirmek istiyorsanız, kod Tasarım moduna girmeden önce hem değişken hem de bağlantı yöneticileri yapılandırmalısınız.Ayrıca, olaylarını ve oturum açma komut dosyası bileşeni kodunuzdan gerçekleştirmek.

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

Paket özelliği

Erişim yöntemi

Değişkenler

Adlandırılmış ve yazılı erişeni özelliklerini kullanın Variables koleksiyon sýnýfýnýzý ComponentWrapper Proje öğe, üzerinden sunulan Variables özellik ScriptMain WalkTree

The PreExecute method can access only read-only variables.The PostExecute method can access both read-only and read/write variables.

Bağlantılar

Adlandırılmış ve yazılı erişeni özelliklerini kullanın Connections koleksiyon sýnýfýnýzý ComponentWrapper Proje öğe, üzerinden sunulan Connections özellik ScriptMain WalkTree

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 yapmaya Log yöntem, ScriptMain WalkTree

Komut dosyası bileşeni hata ayıklama

Komut dosyası bileşeni kesme noktaları kullanımını desteklemez.Bu nedenle, kodunuzun içinde ilerleyebilir ve paket çalıştırır gibi değerleri inceleyin.Komut dosyası bileşeni yürütülmesi, aşağıdaki yöntemleri kullanarak izleyebilirsiniz:

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

  • Bilgi iletileri, uyarılar ve hatalar için olay Yükselt.The FireInformation, FireWarning, and FireError methods display the event description in the Visual Studio Output window.Ancak, FireProgress yöntem, Console.Write yöntem, ve Console.WriteLine yöntem herhangi bir bilgi görüntüleme Çıkış pencere.Gelen iletileri FireProgress olay görüntülenir ilerleme sekmesinde SSIS Tasarımcısı.Daha fazla bilgi için bkz: Olayları Script bileşenindeki yükseltme.

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

Yalnızca bir hedef verileri kaydetmeden bir kaynak veya dönüştürme olarak yapılandırılan bir komut dosyası bileşeni çıkışını incelemek isterseniz, veri akışı ile durdurabilirsiniz bir Satır sayısı dönüşümü ve bir veri görüntüleyicisi için çıkışını komut dosyası bileşeni.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 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.