public override System.Data.DataSet GetList(Guid treeNodeID, Guid userID, OrderExpression order, List<SearchExpression> searchExpression, PagingInfo pagingInfo) { Query.Query query = new Query.CustomClassificationQuery(this); //query.ClassificationTreeID = treeNodeID; query.Columns = this.GetUserProperties(userID, treeNodeID, FieldPlaceHolder.Grid); query.UserFields = this.GetUserFields(userID, treeNodeID, FieldPlaceHolder.Grid); query.OrderExpression = order; query.SearchExpression = this.ValidateSearchExpression(query.Columns, query.UserFields, searchExpression); string sql = query.BuildListQuery(treeNodeID); using (CommonDataProvider provider = new CommonDataProvider()) { if (pagingInfo.Enabled) { StringBuilder cursor = new StringBuilder(); cursor.AppendLine("DECLARE @handle int, @rows int;"); cursor.AppendLine("EXEC sp_cursoropen @handle OUT,"); cursor.AppendFormat("'{0}',", sql.Replace("'", "''")); cursor.AppendLine("1,1,@rows OUT SELECT @rows;"); cursor.AppendFormat("EXEC sp_cursorfetch @handle, 16, {0}, {1}\n", pagingInfo.Start + 1, pagingInfo.Limit); cursor.AppendLine("EXEC sp_cursorclose @handle;"); return provider.ExecuteCommand(cursor.ToString()); } else { return provider.ExecuteCommand(sql); } } }
public override string getQuery(Guid treeNodeID, Guid userID, OrderExpression order, List<SearchExpression> searchExpression) { Query.Query query = new Query.CustomClassificationQuery(this); //query.ClassificationTreeID = treeNodeID; query.Columns = this.GetUserProperties(userID, treeNodeID, FieldPlaceHolder.Grid); query.UserFields = this.GetUserFields(userID, treeNodeID, FieldPlaceHolder.Grid); query.OrderExpression = order; query.SearchExpression = this.ValidateSearchExpression(query.Columns, query.UserFields, searchExpression); string sql = query.BuildListQuery(treeNodeID); return sql; }