Udostępnij za pośrednictwem


Podnoszenie zdarzenia w zadaniu skryptów

Zdarzenia umożliwiają raportowanie błędów, ostrzeżeń i innych informacji, takich jak postępu zadania lub stan, do pakiet zawierającego.Pakiet zawiera programów obsługi zdarzeń związanych z zarządzaniem powiadomień o zdarzeniach.Zadania skryptu można podnieść zdarzenia przez wywołanie metody na Events() Właściwość Dts obiekt. Aby uzyskać więcej informacji na temat sposobu Integration Services pakiety uchwyt zdarzeń, zobacz Obsługa zdarzeń usług integracja.

Mogą być rejestrowane zdarzenia do żadnego dostawca dziennika, który jest włączony w pakiet.Włączeni przechowują informacje o zdarzeniach w magazynie danych.Można także użyć zadania skryptu Log(String, Int32, array<Byte[]) Metoda rejestrować informacje do dostawca dziennika bez podnoszenia zdarzenie. Aby uzyskać więcej informacji na temat używania Log(String, Int32, array<Byte[]) Metoda, zobacz Logging in the Script Task.

Aby podnieść zdarzenie, zadanie skryptu wywołuje jednej z metod przez Events() Właściwość. W poniższej tabela wymieniono metody udostępniane przez Events() Właściwość.

zdarzenie

Description

FireCustomEvent(String, String, array<Object[]%, String, Boolean%)

Podnosi użytkownika niestandardowego zdarzenie w pakiet.

FireError(Int32, String, String, String, Int32)

Informuje o pakiet warunek błędu.

FireInformation(Int32, String, String, String, Int32, Boolean%)

Zawiera informacje dla użytkownika.

FireProgress(String, Int32, Int32, Int32, String, Boolean%)

Informuje o pakiet postęp zadania.

FireQueryCancel()

Zwraca wartość wskazującą, czy pakiet powinien zadań do zamknięcia przedwcześnie.

FireWarning(Int32, String, String, String, Int32)

Informuje o pakiecie zadanie jest w stanie, które wymaga powiadomienie użytkowników, ale nie jest błąd.

Przykładowy zdarzenia

Poniższy przykład ilustruje sposób wywołania zdarzeń z zadań skryptów w ciągu.W przykładzie użyto rodzimych funkcja interfejsu API systemu Windows można określić, czy dostępne jest połączenie z Internetem.Jeśli połączenie nie jest dostępny, zgłasza błąd.Jeśli połączenie modemowe potencjalnie nietrwała jest używany, w przykładzie wywołuje komunikat ostrzegawczy.W przeciwnym wypadku zwraca komunikat informacyjny Wykryto połączenie z Internetem.

Private Declare Function InternetGetConnectedState Lib "wininet" _
    (ByRef dwFlags As Long, ByVal dwReserved As Long) As Long

Private Enum ConnectedStates
    LAN = &H2
    Modem = &H1
    Proxy = &H4
    Offline = &H20
    Configured = &H40
    RasInstalled = &H10
End Enum

Public Sub Main()

    Dim dwFlags As Long
    Dim connectedState As Long
    Dim fireAgain as Boolean

    connectedState = InternetGetConnectedState(dwFlags, 0)

    If connectedState <> 0 Then
        If (dwFlags And ConnectedStates.Modem) = ConnectedStates.Modem Then
            Dts.Events.FireWarning(0, "Script Task Example", _
                "Volatile Internet connection detected.", String.Empty, 0)
        Else
            Dts.Events.FireInformation(0, "Script Task Example", _
                "Internet connection detected.", String.Empty, 0, fireAgain)
        End If
    Else
        ' If not connected to the Internet, raise an error.
        Dts.Events.FireError(0, "Script Task Example", _
            "Internet connection not available.", String.Empty, 0)
    End If

    Dts.TaskResult = ScriptResults.Success

End Sub
using System;
using System.Data;
using Microsoft.SqlServer.Dts.Runtime;
using System.Windows.Forms;
using System.Runtime.InteropServices;

public class ScriptMain
{


[DllImport("wininet")]
        private extern static long InternetGetConnectedState(ref long dwFlags, long dwReserved);

        private enum ConnectedStates
        {
            LAN = 0x2,
            Modem = 0x1,
            Proxy = 0x4,
            Offline = 0x20,
            Configured = 0x40,
            RasInstalled = 0x10
        };

        public void Main()
        {
            //
            long dwFlags = 0;
            long connectedState;
            bool fireAgain = true;
            int state;

            connectedState = InternetGetConnectedState(ref dwFlags, 0);
            state = (int)ConnectedStates.Modem;
            if (connectedState != 0)
            {
                if ((dwFlags & state) == state)
                {
                    Dts.Events.FireWarning(0, "Script Task Example", "Volatile Internet connection detected.", String.Empty, 0);
                }
                else
                {
                    Dts.Events.FireInformation(0, "Script Task Example", "Internet connection detected.", String.Empty, 0, ref fireAgain);
                }
            }
            else
            {
                // If not connected to the Internet, raise an error.
                Dts.Events.FireError(0, "Script Task Example", "Internet connection not available.", String.Empty, 0);
            }

            Dts.TaskResult = (int)ScriptResults.Success;

        }
Integration Services icon (small) Konfiguracja w aktualizacji z usług integracja Services pobytu

Najnowsze pliki do pobrania, artykuły, próbki, i pliki wideo firmy Microsoft, jak również wybranego rozwiązania od Wspólnoty, odwiedź witrynę Integration Services strona w witrynie MSDN lub TechNet:

Automatycznego powiadomienie tych aktualizacji należy subskrybować źródła danych RSS, które jest dostępne strona.