• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1184
  • Last Modified:

Sql Server 2008 SSIS c# packages

I'm new to the Microsoft development world (*nix background) and especially green to the C# language. My new job is a Microsoft shop and I have to write these SSIS packages on a SQL Server 2008 installation. I'm writing packages that use a table to obtain their configuration values such as source database, destination database, destination flat file names, etc... That way packages get shared and it cuts down on the redundant packages.

Anyway long story short, I have some proprietary "cleanup" algorithms I've written and each of the shared packages need, such as validating a date range, integers, floating points, string cleanup, etc.... Instead of copying/pasting these methods into every class, I'd like to be able to write these cleanup routines into a separate class and separate file and "include" them into the shared packages so the code is in one centralized location. How would I do that and can you post a code example of how I would include a use one of the 'included' methods? I've posted a pseudo-code example of what I had in mind.
//external library
 
public class nefec_packageValidation {
      public function isValidDateRange(arg1, arg2) {
            /*
                  code here, return boolean
            */
      }
 
      public function isValidFloat(arg1) {
            /*
                  code here, return boolean
            */
      }
}
 
 
//SSIS package Script Component to validate a 'row'
include externalLibrary
 
public override void Input0_ProcessInputRow(Input0Buffer Row){
      Row.column1 = (nefec_packageValidation.isValidFloat(Row.column1) == true) ? Row.column1 : null;
}

Open in new window

0
MMDeveloper
Asked:
MMDeveloper
  • 3
1 Solution
 
Gautham JanardhanCommented:
u can create these methods in a class and then inherit that calss for all the other classes
public class CommonMethods
{
public void MethodA(){}
public void MethodB(){}
public void MethodC(){}
}
 
public class Package1:CommonMethods
{}
public class Package2:CommonMethods
{}

Open in new window

0
 
Gautham JanardhanCommented:
or make those methods static and then call those methods in the specified class
namespace a
{
public class CommonMethods
{
public static bool isValidFloat(){}
public static void MethodB(){}
public static void MethodC(){}
}
 }
using a;
 
public class Package1
{
public override void Input0_ProcessInputRow(Input0Buffer Row)
{
      Row.column1 = (nefec_packageValidation.isValidFloat(Row.column1) == true) 
}

Open in new window

0
 
MMDeveloperAuthor Commented:
ok but where would I save the .cs file that has the namespace code in it? This code is being shared amongst several independent packages and projects/solutions (all on the same box). I would assume that in order to do the "using a", that the "a" namespace would have to be saved in a special location
0
 
Gautham JanardhanCommented:
u shud make that into a dll and then refer that dll wherever u want to use it
0

Featured Post

The new generation of project management tools

With monday.com’s project management tool, you can see what everyone on your team is working in a single glance. Its intuitive dashboards are customizable, so you can create systems that work for you.

  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now