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.
Komut dosyası Bileşen Nesne modeli anlama
Nesneleri, yöntemleri ve özellikleri komut dosyası bileşen kullanılabilir kullanılmasını açıklar.Diğer derlemeler komut dosyası kullanan Solutions, başvuran
Nesneleri için başvuracak biçimde açıklamaktadır .NET Framework sınıf kitaplığı Kod bileşenindeki.Komut dosyası bileşeni için bir hata çıktı benzetme
Hata işleme sırasında komut dosyası bileşeni tarafından yükseltmenizi satırlar için bir hata çıktı benzetimi açıklar.
|