Kodowanie i zadania skryptu debugowania

Po skonfigurowaniu skryptu zadań w Script Editor zadania, napisać niestandardowy kod w środowisku programistycznym zadania skryptu.

Środowiska programistycznego skryptu zadania

The Script task uses Microsoft Visual Studio Tools for Applications (VSTA) as the development environment for the script itself.

Script code is written in Microsoft Visual Basic 2008 or Microsoft Visual C# 2008.Określanie języka skryptów przez ustawienie ScriptLanguage właściwość w Script Editor zadania.Jeśli wolisz używać innego języka programowania można rozwijać w Twoim języku wybór niestandardowego wirtualny plik dziennika i wywołanie jego funkcji z kodu zadania skryptu.

Skryptu utworzonego zadania skryptu jest przechowywana w definicji pakiet.Nie ma pliku skryptu oddzielne.Dlatego użycia zadania skryptu nie wpływa na pakiet wdrażania.

Ostrzeżenie

Podczas projektowania pakiet i debugowania skryptu, kod skryptu jest tymczasowo zapisywane do pliku projektu.Ponieważ przechowywania informacji poufnych w pliku potencjalne zagrożenie bezpieczeństwa, zaleca się poufne informacje, takie jak hasła nie zawierają się w kodzie skryptu.

Domyślnie Option Strict jest wyłączona w IDE.

Struktura projektu zadania skryptu

Podczas tworzenia lub modyfikowania skryptu, który jest zawarty w zadania skryptu VSTA otwiera pusty projekt nowej lub ponownie otwiera istniejący projekt.Tworzenie projektu VSTA nie wpływa na wdrażania pakiet, ponieważ projekt jest zapisany wewnątrz pliku pakiet; zadania skryptu nie tworzy dodatkowe pliki.

Elementy i klas w projekcie zadania skryptu projektu

Domyślnie skrypt projektu zadania wyświetlana w oknie Eksplorator projektu VSTA zawiera pojedynczy element ScriptMain.ScriptMain Element, z kolei zawiera jedną klasę również o nazwie ScriptMain.Elementy kodu w klasie zależą od wybranego zadania skryptu języka programowania:

  • Kiedy zadania skryptu jest skonfigurowany dla Visual Basic 2008 język programowania, ScriptMain Klasa ma programowego publicznych Main.ScriptMain.Main Procedura jest metoda, która wywołuje środowiska wykonawczego po uruchomieniu zadania skryptu.

    Domyślnie, tylko kod w Main podprocedury nowego skryptu jest linia Dts.TaskResult = ScriptResults.Success.Ten wiersz informuje wykonawczym pomyślne zadania w jej działania.Dts.TaskResult Właściwość została omówiona w Zwracanie wyników z zadań skryptu.

  • Kiedy zadania skryptu jest skonfigurowany dla Visual C# 2008 język programowania, ScriptMain Klasa ma publicznej metoda, Main.Po uruchomieniu zadania skryptu, wywoływana jest metoda.

    Domyślnie Main metoda zawiera wiersz Dts.TaskResult = (int)ScriptResults.Success.Ten wiersz informuje wykonawczym pomyślne zadania w jej działania.

ScriptMain Element może zawierać klas innych niż ScriptMain klasyKlasy są dostępne tylko dla zadania skryptu, w którym zamieszkują.

Domyślnie ScriptMain element projektu zawiera automatycznie wygenerowany następujący kod:

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

Imports System
Imports System.Data
Imports System.Math
Imports Microsoft.SqlServer.Dts.Runtime.VSTAProxy

<System.AddIn.AddIn("ScriptMain", Version:="1.0", Publisher:="", Description:="")> _
Partial Class ScriptMain

Private Sub ScriptMain_Startup(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Startup

End Sub

Private Sub ScriptMain_Shutdown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shutdown
Try
' Unlock variables from the read-only and read-write variable collection properties
If (Dts.Variables.Count <> 0) Then
Dts.Variables.Unlock()
End If
Catch ex As Exception
        End Try
End Sub

Enum ScriptResults
Success = DTSExecResult.Success
Failure = DTSExecResult.Failure
End Enum


' The execution engine calls this method when the task executes.
' To access the object model, use the Dts property. Connections, variables, events,
' and logging features are available as members of the Dts property as shown in the following examples.
'
' To reference a variable, call Dts.Variables("MyCaseSensitiveVariableName").Value
' To post a log entry, call Dts.Log("This is my log text", 999, Nothing)
' To fire an event, call Dts.Events.FireInformation(99, "test", "hit the help message", "", 0, True)
'
' To use the connections collection use something like the following:
' ConnectionManager cm = Dts.Connections.Add("OLEDB")
' cm.ConnectionString = "Data Source=localhost;Initial Catalog=AdventureWorks2008R2;Provider=SQLNCLI10;Integrated Security=SSPI;Auto Translate=False;"
'
' Before returning from this method, set the value of Dts.TaskResult to indicate success or failure.
' 
' To open Help, press F1.

Public Sub Main()
'
' Add your code here
'
Dts.TaskResult = ScriptResults.Success
End Sub

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

using System;
using System.Data;
using Microsoft.SqlServer.Dts.Runtime.VSTAProxy;
using System.Windows.Forms;

namespace ST_1bcfdbad36d94f8ba9f23a10375abe53.csproj
{
    [System.AddIn.AddIn("ScriptMain", Version = "1.0", Publisher = "", Description = "")]
    public partial class ScriptMain
    {
        private void ScriptMain_Startup(object sender, EventArgs e)
        {

        }

        private void ScriptMain_Shutdown(object sender, EventArgs e)
        {
            try
            {
                // Unlock variables from the read-only and read-write variable collection properties
                if (Dts.Variables.Count != 0)
                {
                    Dts.Variables.Unlock();
                }
            }
            catch
            {
            }
        }

        #region VSTA generated code
        private void InternalStartup()
        {
            this.Startup += new System.EventHandler(ScriptMain_Startup);
            this.Shutdown += new System.EventHandler(ScriptMain_Shutdown);
        }
        enum ScriptResults
        {
            Success = DTSExecResult.Success,
            Failure = DTSExecResult.Failure
        };

        #endregion

        /*
The execution engine calls this method when the task executes.
To access the object model, use the Dts property. Connections, variables, events,
and logging features are available as members of the Dts property as shown in the following examples.

To reference a variable, call Dts.Variables["MyCaseSensitiveVariableName"].Value;
To post a log entry, call Dts.Log("This is my log text", 999, null);
To fire an event, call Dts.Events.FireInformation(99, "test", "hit the help message", "", 0, true);

To use the connections collection use something like the following:
ConnectionManager cm = Dts.Connections.Add("OLEDB");
cm.ConnectionString = "Data Source=localhost;Initial Catalog=AdventureWorks2008R2;Provider=SQLNCLI10;Integrated Security=SSPI;Auto Translate=False;";

Before returning from this method, set the value of Dts.TaskResult to indicate success or failure.

To open Help, press F1.
*/

        public void Main()
        {
            // TODO: Add your code here
            Dts.TaskResult = (int)ScriptResults.Success;
        }
    }

Dodatkowe elementy projektu w projekcie zadania skryptu

Skrypt zadań projektu może zawierać elementy inne niż domyślne ScriptMain element.Klasy, moduły i kod pliki można dodać do projektu.Za pomocą folderów do organizowania grup elementów.Wszystkie elementy dodane są zachowywane wewnątrz pakiet.

Odwołania w projekcie zadania skryptu

Można dodać odwołania do zestawów zarządzanych klikając prawym przyciskiem myszy projekt zadania skryptu w Eksplorator projektu, a następnie klikając polecenie Dodaj odwołanie.Aby uzyskać więcej informacji, zobacz Odwoływanie się do innych zespołów w roztworach skryptów.

Ostrzeżenie

Umożliwia wyświetlanie odwołań do projektu w IDE VSTA w Widok klasy lub Eksplorator projektu.Otwórz jeden z tych okien z widoku menu.Można dodać nowe odwołanie z projektu menu z Eksplorator projektu, lub z Widok klasy.

Interakcja z pakietu w zadania skryptu

Globalny używa zadania skryptu Dts obiekt, który jest wystąpienie z ScriptObjectModel klasy i jej członkom na interakcję z pakiet zawierającego i Integration Services runtime.

W poniższej tabela przedstawiono główne członków publicznych ScriptObjectModel klasy, która jest narażony na kod zadania skryptu za pomocą szablonu globalnego Dts obiektu.Tematy w tej sekcji omówiono użycie tych członków bardziej szczegółowo.

Element członkowski

Cel

[ P:Microsoft.SqlServer.Dts.Tasks.ScriptTask.ScriptObjectModel.Connections ]

Zapewnia dostęp do menedżerów połączenia zdefiniowane w pakiet.

[ P:Microsoft.SqlServer.Dts.Tasks.ScriptTask.ScriptObjectModel.Events ]

Interfejs zdarzenia umożliwiają zadania skryptu podnieść błędy, ostrzeżenia i komunikaty informacyjne.

[ P:Microsoft.SqlServer.Dts.Tasks.ScriptTask.ScriptObjectModel.ExecutionValue ]

Zapewnia prosty sposób, aby powrócić do środowiska wykonawczego pojedynczy obiekt (oprócz TaskResult), można również dla przepływu pracy rozgałęzianie.

[ M:Microsoft.SqlServer.Dts.Tasks.ScriptTask.ScriptObjectModel.Log(System.String,System.Int32,System.Byte[]) ]

Rejestruje informacje, takie jak postęp zadania i wyniki do dziennika włączonych dostawców.

[ P:Microsoft.SqlServer.Dts.Tasks.ScriptTask.ScriptObjectModel.TaskResult ]

Zgłasza sukces lub niepowodzenie zadania.

[ P:Microsoft.SqlServer.Dts.Tasks.ScriptTask.ScriptObjectModel.Transaction ]

Zapewnia transakcji, jeśli, w którym działa zadanie kontener.

[ P:Microsoft.SqlServer.Dts.Tasks.ScriptTask.ScriptObjectModel.Variables ]

Zapewnia dostęp do zmiennych wymienionych w ReadOnlyVariables i ReadWriteVariables Właściwości zadania za pomocą w ramach script.

ScriptObjectModel Klasa zawiera także niektórzy członkowie publicznych, która zostanie prawdopodobnie nie jest używany.

Element członkowski

Opis

[ P:Microsoft.SqlServer.Dts.Tasks.ScriptTask.ScriptObjectModel.VariableDispenser ]

Variables właściwość zapewnia wygodniejszy dostęp do zmiennych.Chociaż można używać VariableDispenser, należy jawnie wywołać metody blokada i unblokada zmienne, czytania i pisaniaZadania skryptu obsługuje blokowanie semantyka , korzystając z Variables właściwość.

Debugowanie skryptu zadania

Do debugowania kodu w swoje zadania skryptu zestaw co najmniej jeden punkt punkt przerwania kodu, a następnie zamknij IDE VSTA, aby uruchomić pakiet Business Intelligence Development Studio.Gdy wykonanie pakiet wprowadza zadania skryptu, VSTA IDE ponownie otwiera i wyświetla kod w trybie tylko do odczytu.Po realizacji osiągnie swój punkt przerwania, można zbadać wartości zmiennych i pozostałe kodu.

Ostrzeżenie

Należy wykonać pakiet debugowania do zadania skryptu.Jeśli użytkownik wykonać poszczególnych zadań, punktów przerwania w skrypcie kod zadania są ignorowane.

Ostrzeżenie

Zadania skryptu nie debugowania po uruchomieniu zadania skryptu jako część pakiet podrzędność, uruchamianego z pakiet na wykonanie zadania.Punkty przerwania, które zestaw w zadania skryptu w pakiecie podrzędność są pomijane w tych okolicznościach.Pakiet podrzędność można debugować normalnie uruchamiając ją oddzielnie.

Ostrzeżenie

Podczas debugowania pakiet, który zawiera wiele zadań skryptu debugera trafienia punkty przerwania w tylko jedno zadanie skryptu i zignoruje punkty przerwania w innych zadań skryptu.Jeśli zadania skryptu jest częścią Foreach pętli lub pętli dla kontener, debuger ignoruje punkty przerwania w zadania skryptu po pierwszej iteracji pętli.

Ikona usług Integration Services (mała)Bieżąco z usług integracji

Pobieranie najnowszych artykułów, próbek i wideo z Microsoft, jak również wybranych rozwiązań ze Wspólnoty, odwiedź witrynę Integration Services strona na MSDN i TechNet:

Aby otrzymywać automatyczne powiadomienia dotyczące tych aktualizacji, zasubskrybuj źródła danych RSS dostępne na tej stronie.