2016-12-20 1 views
-2

j'ai réussi à obtenir mon application à exécuter mon test package SSIS mais je veux être en mesure de récupérer des informations qu'il est retourné IE Le temps passé à courir, etc.Comment connecter des informations de package SSIS dans C#

Voici comment j'exécute le paquet:

//EXECUTES THE PACKAGE. 
Microsoft.SqlServer.Dts.Runtime.Wrapper.DTSExecResult pkgResults = pkg.Execute(null,container.Variables, null, null, null); 

Le pkgResults me renvoie seulement le succès ou l'échec et aucune autre information pertinente.

Y at-il un moyen que je peux obtenir un journal de l'information pour moi de stocker dans une base de données SQL?

+0

[Documentation de journalisation SSIS] (https://msdn.microsoft.com/fr-fr/library/ms140246.aspx) – stuartd

+0

@stuartd Quelle est la version de ce document? Je n'ai pas de méthode OnInformation pour mon package. –

+0

Hit la liste déroulante sous le titre pour les différentes versions, ils remontent à 2008R2 – stuartd

Répondre

0

Ben,

Je suppose que vous voulez savoir le temps qu'il a fallu pour l'exécution de l'ensemble du paquet ou les tâches à l'intérieur d'un paquet. Encore une fois, je vous recommande d'utiliser l'assembly ManagedDTS si possible (au lieu de l'assembly wrapper).

Si vous utilisez l'assembly ManagedDTS, tous les objets hôte conteneur et tâche héritent des propriétés StartTime et StopTime de l'objet DtsContainer. Ainsi dans l'assemblage ManagedDts vous pouvez le faire (pkg Asuming est un objet de paquet dans l'ensemble de ManagedDTS)

pkg.StartTime - pkg.StopTime 

Si vous voulez que le temps d'exécution d'un exécutable spécifique dans le package, vous pouvez toujours appeler les propriétés STARTTIME et stopTime sur cet exécutable spécifique (puisqu'il hérite de DtsContainer).

Dans l'emballage, les choses sont un peu moins simples. Les propriétés StartTime et StopTime sont disponibles via l'interface IDTSExecutionMetrics100. Vous devez jeter votre objet de package (ou tout autre tâche/conteneur) à cette interface, puis accéder aux propriétés STARTTIME et stopTime. (Pkg Asuming est un objet IDTSPackage100 dans l'assemblage d'emballage)

(pkg as IDTSExecutionMetrics100).StartTime - (pkg as IDTSExecutionMetrics100).StopTime 

et si vous êtes à la recherche des durées d'exécution d'un exécutable spécifique dans un package, vous devez accéder à cet exécutable spécifique, le convertir vers l'interface IDTSExecutionMetrics100, puis accéder au StartTime et au StopTime.

L'assemblage ManagedDTS simplifie ces choses et toutes les propriétés et méthodes pertinentes sont plus intuitivement disponibles que via l'assemblage Wraper.