Aracılığıyla paylaş


Komut dosyası görev olayları yükseltme

Hataları, uyarıları ve diğer bilgileri gibi görev ilerleme veya durum için içeren olayları sağlar paket.Paket, olay bildirimleri yönetmek için olay işleyicileri sağlar.Komut dosyası görev yöntemlerini çağırarak, olayları yükseltebilirsiniz Events() özellik Dts nesne. Hakkında daha fazla bilgi için Integration Services paketleri tanıtıcı olayları, bkz: Tümleştirme Hizmetleri olay işleyicileri.

Olayları için günlüğe kaydedilebilir günlük sağlayıcısı pakette etkin.Günlüğü sağlayıcılarını olaylarla ilgili bilgileri bir veri deposunda saklar.Komut dosyası görev de kullanılabilir Log(String, Int32, array<Byte[]) bilgi olay yükseltme olmayan bir günlük sağlayıcısına oturum açmak için yöntem. Nasıl kullanılacağı hakkında daha fazla bilgi için Log(String, Int32, array<Byte[]) yöntem için bkz: Oturum açma komut dosyası görev.

Bir olay oluşturmak için , komut dosyası görev tarafından gösterilen yöntemlerden birini çağıran Events() özellik. Tarafından kullandığı yöntemler aşağıdaki tabloda listelenmiştir Events() özellik.

Olay

Açıklama

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

Bir kullanıcı tarafından tanımlanan özel olayı harekete geçiren paket.

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

Paket, bir hata durumu bildirir.

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

Bilgiler, kullanıcıya sunar.

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

Paket görevinin ilerleme bildirir.

FireQueryCancel()

Paket, görevin erken kapatma gerekip gerekmediğini gösteren bir değeri döndürür.

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

Görev kullanıcı bildirim eder, ancak bir hata durumu değil bir durumda bulunan ve paketin bildirir.

Olayları örneği

Aşağıdaki örnekte, görev komut dosyası içindeki gelen olaylarını gösterilmiştir.Bu örnek, bir ınternet bağlantısı olup olmadığını belirlemek için yerel bir Windows API işlev kullanır.Bağlantı varsa, bağlı olan bir hata oluşturacaktır.Olası geçici bir modem bağlantısı kullanmak üzere, örnek bir uyarı yükseltir.Aksi durumda, ınternet bağlantısı algıladı bilgilendirici bir ileti verir.

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) 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.