public static PhysicalTask.SqlTask Lower(this AstTask.AstStoredProcNode astNode) { if (astNode.AsClassOnly) { return null; } try { PhysicalTSQL.StoredProc physicalStoredProc = new Ssis2008Emitter.IR.TSQL.StoredProc(); physicalStoredProc.Body = astNode.Body; physicalStoredProc.ExecuteDuringDesignTime = astNode.ExecuteDuringDesignTime; physicalStoredProc.Name = astNode.Name; physicalStoredProc.Columns.Parent = physicalStoredProc; foreach (AstTask.AstStoredProcColumnNode column in astNode.Columns) { PhysicalTSQL.StoredProcColumn physicalColumn = new Ssis2008Emitter.IR.TSQL.StoredProcColumn(); physicalColumn.Default = column.Default; physicalColumn.IsOutput = column.IsOutput; physicalColumn.Name = column.Name; physicalColumn.Parent = physicalStoredProc; physicalColumn.Type = Ssis2008Emitter.Emitters.TSQL.PhysicalTypeTranslator.Translate(column.Type, column.Length, column.Precision, column.Scale, column.CustomType); physicalStoredProc.Columns.ColumnList.Add(physicalColumn); } TSQLEmitter.StoredProcPlatformEmitter storedProcEmitter = new TSQLEmitter.StoredProcPlatformEmitter(); string storedProcBody = storedProcEmitter.Emit(physicalStoredProc); PhysicalTask.SqlTask sqlTask = new Ssis2008Emitter.IR.Task.SqlTask(); sqlTask.Body = storedProcBody; AddConnection(astNode.Connection); sqlTask.Connection = astNode.Connection.Name; sqlTask.ExecuteDuringDesignTime = astNode.ExecuteDuringDesignTime; sqlTask.Name = astNode.Name; sqlTask.ResultSet = "None"; sqlTask.Type = "File"; return sqlTask; } catch (Exception e) { throw new SSISEmitterException(astNode, e); } }
public string Emit(StoredProc storedProc) { TemplatePlatformEmitter te = new TemplatePlatformEmitter("StoredProc", storedProc.Name, new StoredProcColumnsBuilder(storedProc.Columns).Build(), storedProc.Body); return te.Emit(storedProc); }