public BinaryConditionInfo Parse(SelectAtomContext ctx) { BinaryConditionInfo rslt = null; if (Binary_compare != null) { rslt = Binary_compare.Parse(ctx); } //SqlContext.Condition_Stack.Peek().Conditions.Add( // new ConditionComplexInfo { Condition = rslt}); //var condition = rslt.Condition.Conditions[0].Condition; if (Condition_option != null) { if (string.Compare(Condition_option.Option, "?", true) == 0) { rslt.Required = false; } else if (string.Compare(Condition_option.Option, "#", true) == 0) { rslt.Required = true; } //if ( rslt.LeftValue.IsParameter ) //{ // rslt. //} //foreach (var p in rslt.LeftValue.IsParameter) //{ // p.NullAble = !condition.Required; //} } if (this.Search_option != null) { if (Search_option == null || Search_option.Option_expression == null || Search_option.Option_expression.Option_list == null || Search_option.Option_expression.Option_list.Options == null) { return(rslt); } foreach (var option in Search_option.Option_expression.Option_list.Options) { rslt.Options.Add( new SqlOption() { Name = option.Option_name.Text.Replace("'", ""), Value = option.Option_value.text.Replace("'", "") }); } } return(rslt); }
public BinaryConditionInfo Parse(SelectAtomContext ctx) { var condition = new BinaryConditionInfo(); if (Left_table_field != null) { var temp = Left_table_field.Parse(ctx); condition.LeftValue = temp; } if (Right_table_field != null) { condition.RightValue = Right_table_field.Parse(ctx); } if (Predication != null) { condition.RightValue = new PredicationFieldInfo(); Predication.Parse(condition.RightValue as PredicationFieldInfo); } switch (Binary_operater.Operater.ToLower()) { case "=": condition.ConditionType = ConditionType.Equal; break; case "<": condition.ConditionType = ConditionType.Lt; break; case ">": condition.ConditionType = ConditionType.Gt; break; case "!=": condition.ConditionType = ConditionType.NotEqual; break; case "<=": condition.ConditionType = ConditionType.LtEqual; break; case ">=": condition.ConditionType = ConditionType.GtEqual; break; case "in": condition.ConditionType = ConditionType.In; break; case "like": var c = new LikeConditionInfo(); c.LeftValue = condition.LeftValue; c.RightValue = condition.RightValue; condition = c; condition.ConditionType = ConditionType.Like; break; case "between": condition.ConditionType = ConditionType.Between; break; case "exists": condition.ConditionType = ConditionType.Exists; break; default: condition.ConditionType = ConditionType.Unknown; break; } return condition; }
public BinaryConditionInfo Parse(SelectAtomContext ctx) { var condition = new BinaryConditionInfo(); if (Left_table_field != null) { var temp = Left_table_field.Parse(ctx); condition.LeftValue = temp; } if (Right_table_field != null) { condition.RightValue = Right_table_field.Parse(ctx); } if (Predication != null) { condition.RightValue = new PredicationFieldInfo(); Predication.Parse(condition.RightValue as PredicationFieldInfo); } switch (Binary_operater.Operater.ToLower()) { case "=": condition.ConditionType = ConditionType.Equal; break; case "<": condition.ConditionType = ConditionType.Lt; break; case ">": condition.ConditionType = ConditionType.Gt; break; case "!=": condition.ConditionType = ConditionType.NotEqual; break; case "<=": condition.ConditionType = ConditionType.LtEqual; break; case ">=": condition.ConditionType = ConditionType.GtEqual; break; case "in": condition.ConditionType = ConditionType.In; break; case "like": var c = new LikeConditionInfo(); c.LeftValue = condition.LeftValue; c.RightValue = condition.RightValue; condition = c; condition.ConditionType = ConditionType.Like; break; case "between": condition.ConditionType = ConditionType.Between; break; case "exists": condition.ConditionType = ConditionType.Exists; break; default: condition.ConditionType = ConditionType.Unknown; break; } return(condition); }