private static IParamBuilder CreateLayerParamBuilder(TkDbContext context, IFieldInfo layer, string topLayer) { string fieldName = layer.FieldName; IParamBuilder builder = SqlParamBuilder.CreateParamBuilder( SqlParamBuilder.CreateSingleSql(context, layer, "!=", fieldName + "0", topLayer), SqlParamBuilder.CreateSingleSql(context, layer, "LIKE", fieldName + "1", topLayer + "%")); return(builder); }
public override IParamBuilder GetCondition(IFieldInfo field, string fieldValue) { if (IsEqual) { return(SqlParamBuilder.CreateEqualSql(Context, field, fieldValue)); } else { return(SqlParamBuilder.CreateSingleSql(Context, field, "LIKE", fieldValue + "%")); } }
public override IParamBuilder GetCondition(IFieldInfo fieldName, string fieldValue) { try { DateTime date = DateTime.Parse(fieldValue, ObjectUtil.SysCulture); return(SqlParamBuilder.CreateSingleSql(Context, fieldName, "<", fieldName.FieldName + "END", date.AddDays(1))); } catch { return(SqlParamBuilder.NoResult); } }
internal static void SortTree(TableResolver resolver, DbTreeDefinition tree, string id, TreeNodeMoveDirection direct) { TkDebug.AssertArgumentNull(resolver, "resolver", null); TkDebug.AssertArgumentNull(tree, "tree", null); TkDebug.AssertArgumentNullOrEmpty(id, "id", null); IParamBuilder fixBuilder = resolver.CreateFixCondition(); IParamBuilder builder = ParamBuilder.CreateParamBuilder(fixBuilder, SqlParamBuilder.CreateEqualSql(resolver.Context, resolver.GetFieldInfo(tree.IdField), id)); IFieldInfo layerField = resolver.GetFieldInfo(tree.LayerField); string sql = string.Format(ObjectUtil.SysCulture, "SELECT {0} FROM {1}", layerField.FieldName, resolver.TableName); string layer = DbUtil.ExecuteScalar(sql, resolver.Context, builder).ToString(); string parentLayer = layer.Substring(0, layer.Length - 3); resolver.SetCommands(AdapterCommand.Update); builder = SqlParamBuilder.CreateSingleSql(resolver.Context, layerField, "LIKE", parentLayer + "___"); resolver.Select(builder, "ORDER BY " + layerField.FieldName); if (resolver.HostTable == null || resolver.HostTable.Rows.Count == 0) { return; } int rowNum = GetRowNum(resolver.HostTable, tree.IdField, id); if (rowNum == -1) { return; } //根据移动方向,执行不同操作 switch (direct) { case TreeNodeMoveDirection.Up: if (rowNum == 0) //已经最前,不能向上移动 { return; } SwapLayer(resolver, tree, rowNum, rowNum - 1); break; case TreeNodeMoveDirection.Down: if (rowNum == resolver.HostTable.Rows.Count - 1) //已经最后,不能向下移动 { return; } SwapLayer(resolver, tree, rowNum, rowNum + 1); break; } }
private IEnumerable <ITreeNode> SelectChildNode(string parentId, int level) { string value = fProvider.GetSqlLikeValue(fDefinition, level, parentId); IFieldInfo fieldInfo = fSelector.GetFieldInfo(fDefinition.IdField); IParamBuilder builder = SqlParamBuilder.CreateSingleSql(fSelector.Context, fieldInfo, "LIKE", value); if (!string.IsNullOrEmpty(parentId)) { builder = SqlParamBuilder.CreateParamBuilder(builder, SqlParamBuilder.CreateSingleSql(fSelector.Context, fieldInfo, "<>", fDefinition.IdField + 1, parentId)); } return(TreeUtil.SelectData(fSelector, this, () => fSelector.Select(builder), null).ToArray()); }
internal static IParamBuilder GetLevelBuilder(TableSelector selector, LevelTreeDefinition treeDef, int level, string value, ILevelProvider provider) { IParamBuilder[] builders = new IParamBuilder[level + 1]; IFieldInfo idField = selector.GetFieldInfo(treeDef.IdField); for (int i = 0; i <= level; ++i) { string likeValue = provider.GetSqlLikeValue(treeDef, i, value); builders[i] = SqlParamBuilder.CreateSingleSql(selector.Context, idField, "LIKE", treeDef.IdField + i, likeValue); } IParamBuilder builder = SqlParamBuilder.CreateParamBuilderWithOr(builders); return(builder); }
internal static IParamBuilder GetValueBuilder(TableSelector selector, DbTreeDefinition treeDef, int topLevel, NormalDataRowTreeNode node) { string layer = node.Layer; int len = layer.Length / 3; if (len < topLevel) { return(null); } IParamBuilder[] builders = new IParamBuilder[len - topLevel + 1]; for (int i = 0; i < builders.Length; i++) { int subLength = (topLevel + i - 1) * 3; string likeValue = layer.Substring(0, subLength).PadRight(subLength + 3, '_'); string paramName = treeDef.LayerField + i.ToString(ObjectUtil.SysCulture); builders[i] = SqlParamBuilder.CreateSingleSql(selector.Context, selector.GetFieldInfo(treeDef.LayerField), "LIKE", paramName, likeValue); } IParamBuilder builder = SqlParamBuilder.CreateParamBuilderWithOr(builders); return(builder); }
public override IParamBuilder GetCondition(IFieldInfo fieldName, string fieldValue) { return(SqlParamBuilder.CreateSingleSql(Context, fieldName, ">=", fieldName.FieldName, fieldValue)); }
public override IParamBuilder GetCondition(IFieldInfo field, string fieldValue) { string likeValue = string.Format(ObjectUtil.SysCulture, "%\"{0}\"%", fieldValue); return(SqlParamBuilder.CreateSingleSql(Context, field, "LIKE", likeValue)); }