Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
SSIS Integration Runtime i Azure Data Factory
Händelser ger ett sätt att rapportera fel, varningar och annan information, såsom uppgiftsframsteg eller status, till det innehållande paketet. Paketet tillhandahåller händelsehanterare för att hantera händelsenotiser. Script-uppgiften kan skapa händelser genom att anropa metoder på egenskapen Events hos Dts-objektet . För mer information om hur Integration Services-paket hanterar händelser, se Integration Services (SSIS) Event Handlers.
Händelser kan loggas till vilken loggleverantör som helst som är aktiverad i paketet. Loggleverantörer lagrar information om händelser i en datalagring. Skriptuppgiften kan också använda metoden Log för att logga information till en loggleverantör utan att skapa en händelse. För mer information om hur du använder metoden Log , se Loggning i Skriptuppgiften.
För att ta upp en händelse anropar Script-uppgiften en av metoderna som exponeras av egenskapen Events . Följande tabell listar de metoder som exponeras av egenskapen Events .
| Event | Description |
|---|---|
| FireCustomEvent | Skapar en användardefinierad anpassad händelse i paketet. |
| FireError | Informerar paketet om ett felvillkor. |
| FireInformation | Ger information till användaren. |
| FireProgress | Informerar paketet om uppgiftens framsteg. |
| FireQueryCancel | Returnerar ett värde som indikerar om paketet behöver att uppgiften stängs av i förtid. |
| FireWarning | Informerar paketet om att uppgiften är i ett tillstånd som kräver användarnotis, men inte är ett felvillkor. |
Evenemangsexempel
Följande exempel visar hur man kan skapa händelser från Script-uppgiften. Exemplet använder en inbyggd Windows API-funktion för att avgöra om en internetanslutning är tillgänglig. Om ingen anslutning finns tillgänglig ger det ett felmeddelande. Om en potentiellt volatil modemanslutning används, väcker exemplet en varning. Annars returnerar den ett informationsmeddelande om att en internetanslutning har upptäckts.
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;
}