public static void ParseSsisPackage(string ssis_filename, string output_folder, SqlCompatibilityType SqlMode = SqlCompatibilityType.SQL2008, bool UseSqlSMO = true) { XmlReaderSettings set = new XmlReaderSettings(); set.IgnoreWhitespace = true; SsisObject o = new SsisObject(); gSqlMode = SqlMode; // Make sure output folder exists Directory.CreateDirectory(output_folder); // Set the appropriate flag for SMO usage ProjectWriter.UseSqlServerManagementObjects = UseSqlSMO; // TODO: Should read the dtproj file instead of the dtsx file, then produce multiple classes, one for each .DTSX file // Read in the file, one element at a time XmlDocument xd = new XmlDocument(); xd.Load(ssis_filename); ReadObject(xd.DocumentElement, o); // Now let's produce something meaningful out of this mess! ProduceSsisDotNetPackage(Path.GetFileNameWithoutExtension(ssis_filename), o, output_folder); }
/// <summary> /// Attempt to read an SSIS package and produce a meaningful C# program /// </summary> /// <param name="ssis_filename"></param> /// <param name="output_folder"></param> public static SsisObject ParseSsisPackage(string ssis_filename, SqlCompatibilityType SqlMode = SqlCompatibilityType.SQL2008, bool UseSqlSMO = true) { XmlReaderSettings set = new XmlReaderSettings(); set.IgnoreWhitespace = true; SsisObject o = new SsisObject(); gSqlMode = SqlMode; // Set the appropriate flag for SMO usage ProjectWriter.UseSqlServerManagementObjects = UseSqlSMO; // Read in the file, one element at a time XmlDocument xd = new XmlDocument(); xd.Load(ssis_filename); XmlNodeReader xl = new XmlNodeReader(xd); DataSet d = new DataSet(); d.ReadXml(xl, XmlReadMode.IgnoreSchema); ReadObject(xd.DocumentElement, o); return(o); }
public static void ParseSsisPackage(string ssis_filename, string output_folder, SqlCompatibilityType SqlMode = SqlCompatibilityType.SQL2008, bool UseSqlSMO = true) { XmlReaderSettings set = new XmlReaderSettings(); set.IgnoreWhitespace = true; SsisObject o = new SsisObject(); gSqlMode = SqlMode; // Make sure output folder exists Directory.CreateDirectory(output_folder); // Set the appropriate flag for SMO usage ProjectWriter.UseSqlServerManagementObjects = UseSqlSMO; // TODO: Should read the dtproj file instead of the dtsx file, then produce multiple classes, one for each .DTSX file // Read in the file, one element at a time XmlDocument xd = new XmlDocument(); xd.Load(ssis_filename); ReadObject(xd.DocumentElement, o); // Now let's produce something meaningful out of this mess! ProduceSsisDotNetPackage(Path.GetFileNameWithoutExtension(ssis_filename), o, output_folder); }