code_junkie

How do I catch events from an SSIS package loaded in C#?

Nov 12th, 2011
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.25 KB | None | 0 0
  1. Microsoft.SqlServer.Dts.Runtime.SqlPackageEventListener sqlListener = new SqlPackageEventListener();
  2. Microsoft.SqlServer.Dts.Runtime.Application sqlPackageLoader = new Application();
  3. Microsoft.SqlServer.Dts.Runtime.Package sqlPackage = sqlPackageLoader.LoadPackage(@"pathMigrateData.dtsx", sqlListener);
  4. sqlPackage.Execute(null, null, sqlListener, null, null);
  5.  
  6. public class SqlPackageEventListener : DefaultEvents
  7. {
  8. public SqlPackageChangedHandler OnPackageError;
  9.  
  10. public override bool OnError(DtsObject source, int errorCode, string subComponent, string description, string helpFile, int helpContext, string idofInterfaceWithError) {
  11. OnPackageError(this, new PackageErrorEventArgs(source, subComponent, description));
  12. return base.OnError(source, errorCode, subComponent, description, helpFile, helpContext, idofInterfaceWithError);
  13. }
  14.  
  15. public delegate void SqlPackageChangedHandler(
  16. object sqlPackage,
  17. EventArgs packageInfo
  18. );
  19. }
  20.  
  21. public class PackageErrorEventArgs : EventArgs
  22. {
  23. private DtsObject source;
  24. public DtsObject Source {
  25. get { return source; }
  26. set { source = value; }
  27. }
  28.  
  29. private string subcomponent;
  30. public string Subcomponent {
  31. get { return subcomponent; }
  32. set { subcomponent = value; }
  33. }
  34.  
  35. private string description;
  36. public string Description {
  37. get { return description; }
  38. set { description = value; }
  39. }
  40.  
  41. public PackageErrorEventArgs(DtsObject source, string subcomponent, string description) {
  42. this.description = description;
  43. this.source = source;
  44. this.subcomponent = subcomponent;
  45. }
  46. }
  47.  
  48. public class Test
  49. {
  50. SqlPackageEventListener sqlListener = new SqlPackageEventListener();
  51. sqlListener.OnPackageError += new SqlPackageEventListener.SqlPackageChangedHandler(sqlListener_OnPackageError);
  52. Microsoft.SqlServer.Dts.Runtime.Application sqlPackageLoader = new Microsoft.SqlServer.Dts.Runtime.Application();
  53. Microsoft.SqlServer.Dts.Runtime.Package sqlPackage = Microsoft.SqlServer.Dts.Runtime.sqlPackageLoader.LoadPackage(@"path_tofile.dtsx", sqlListener);
  54. sqlPackage.Execute(null, null, sqlListener, null, null)
  55.  
  56. public void sqlListener_OnPackageError(object sender, EventArgs args) {
  57. //code to handle the event
  58. }
  59. }
Add Comment
Please, Sign In to add comment