public static void CreateAndRegister(AstNode astNode, LoweringContext context) { var astQuerySourceNode = astNode as AstQuerySourceNode; if (astQuerySourceNode != null) { var oleDBSource = new OleDBSource(context, astNode) { _oleDBConnection = new OleDBConnection(astQuerySourceNode.Connection) }; // Note: vsabella: workaround for different behavior regarding expressions for OLEDB sources // versus how it works in Lookups. if (astQuerySourceNode.Query.QueryType == QueryType.Expression) { // Variable name has to be only alphanumeric, more restrictive than astQuerySource Name string varName = "__" + System.Guid.NewGuid().ToString("N"); var variable = new Variable(varName); oleDBSource.SqlCommandVarName = "User::" + varName; variable.TypeCode = System.TypeCode.String; variable.EvaluateAsExpression = true; variable.ValueString = astQuerySourceNode.Query.Body; context.ParentObject.Children.Add(variable); } else { foreach (AstVariableParameterMappingNode paramNode in astQuerySourceNode.Query.Parameters) { var variable = new Variable(paramNode.Variable); oleDBSource._paramDictionary[paramNode.Name] = variable; context.ParentObject.Children.Add(variable); } } context.ParentObject.Children.Add(oleDBSource._oleDBConnection); context.ParentObject.Children.Add(oleDBSource); } }
public Package(AST.Task.AstPackageNode astNode) : base(astNode) { _DTSApplication = new DTS.Application(); DtsPackage = new DTS.Package(); DtsPackage.Name = StringManipulation.NameCleaner(Name); PackageType = String.IsNullOrEmpty(astNode.PackageType) ? "ETL" : astNode.PackageType; PackageFolder = astNode.PackageFolder; PackagePath = astNode.PackagePath; PackageProtectionLevel = astNode.ProtectionLevel; PackagePassword = astNode.PackagePassword; // vsabella: We thought about adding this in the Lowering phase. // The reason this was not placed in Lowering is that this variable must be available // before any other lowering can take place. Additionally i needed a single place where the // variable name could remain constant and other lowering phase engines could refer to it. // PreEmit PackageRootVariable = new Variable(PackagePathRootVariableName) { InheritFromPackageParentConfigurationString = "User::" + PackagePathRootVariableName, ValueString = PathManager.TargetPath, TypeCode = TypeCode.String }; Children.Add(PackageRootVariable); }
private static void AddVariable(Variable variable, Microsoft.SqlServer.Dts.Tasks.ExecuteSQLTask.ParameterDirections direction, PhysicalTask.SqlTask sqlTask) { PhysicalTask.ExecuteSQLParameter parameter = new PhysicalTask.ExecuteSQLParameter(); parameter.Variable = variable; parameter.Direction = direction; parameter.OleDbType = GetVariableType(variable.Type); sqlTask.ParameterList.Add(parameter); }
public static Variable Lower(this AstTask.AstVariableNode astNode) { if (astNode.AsClassOnly) { return null; } Variable variable = new Variable(); variable.Name = astNode.Name; variable.Type = astNode.Type.ToString(); variable.Value = astNode.Value; return variable; }
private static Variable AddVariable(PhysicalTask.SequenceTask LogContainer, string name, Microsoft.SqlServer.Dts.Tasks.ExecuteSQLTask.ParameterDirections direction, PhysicalTask.SqlTask sqlTask, string type) { Variable variable = new Variable(); variable.Name = LogContainer.Name + Resources.Seperator + name; variable.Type = type; variable.Value = "-1"; AddVariable(variable, direction, sqlTask); return variable; }
public virtual OleDbType GetVariableType(Variable variable) { OleDbType retType = OleDbType.Empty; switch (variable.Type.ToUpper(System.Globalization.CultureInfo.InvariantCulture)) { case "STRING": retType = OleDbType.WChar; break; case "INT32": retType = OleDbType.Integer; break; case "INT64": retType = OleDbType.BigInt; break; case "BOOLEAN": retType = OleDbType.Boolean; break; case "Byte": retType = OleDbType.Binary; break; case "Char": retType = OleDbType.Char; break; case "DateTime": retType = OleDbType.DBTimeStamp; break; case "DBNull": retType = OleDbType.Empty; break; case "Double": retType = OleDbType.Double; break; case "Int16": retType = OleDbType.SmallInt; break; case "SByte": retType = OleDbType.Binary; break; case "Single": retType = OleDbType.Single; break; case "UInt32": retType = OleDbType.UnsignedInt; break; case "UInt64": retType = OleDbType.UnsignedBigInt; break; } return retType; }
public static void LowerVariable(AstNode astNode, LoweringContext context) { var astVariable = astNode as AstTask.AstVariableNode; if (astVariable != null) { var v = new Variable(astVariable); context.ParentObject.Children.Add(v); } }
public SsisVariable(Variable variable, SSISEmitterContext context) : this(variable.Name, variable.Value, (DTS.DtsContainer)context.ParentContainer) { }
public SsisVariable(Variable variable) : this(variable.Name, variable.Value, (DTS.DtsContainer)null) { }