public static IList <DataJoin <T, StatisticData> > GetPage <T>(DataSource ds, int type, DataSortType sort, DataColumn[] columns, DataOrder[] order, long index, int size, out long count, string idName, DataWhereQueue where) where T : DbTable, new() { List <DataColumn> list = new List <DataColumn>(); if (columns == null) { list.Add(C <T>("*")); } else { list.AddRange(columns); } List <DataOrder> olist = new List <DataOrder>(); if (type > 0) { olist.Add(new DataOrder <StatisticData>("Count", sort)); } if (order != null) { olist.AddRange(order); } DataWhereQueue queue = WD; if (type > 0) { queue &= P <StatisticData>("Type", type); } if (queue != null) { queue &= where; } return(ExecuteReader <T, StatisticData>(ds, list.ToArray(), olist.ToArray(), index, size, out count, idName, "TargetId", DataJoinType.Inner, queue)); }
public static DataStatus ModifyMoney(DataSource ds, long id, Money value) { if (value == 0) { return(DataStatus.Success); } DataWhereQueue where = P("UserId", id); if (value < 0) { where = WN("Money", -value, "OldMoney", ">=") & where; } return((new Distributor() { UserId = id }).Update(ds, ColumnMode.Include, Cs(MODC("Money", value)), where)); }
/// <summary> /// 修改可用预存款 /// </summary> /// <param name="ds"></param> /// <param name="id"></param> /// <param name="value"></param> /// <returns></returns> public static DataStatus ModifyMoney(DataSource ds, long id, Money value, string title, int type = 0, string targetId = null) { if (value == 0) { return(DataStatus.Success); } ds.Begin(); try { DataStatus status = (new MoneyRecord() { MemberId = id, Title = title, Type = type, TargetId = targetId, Value = value, CreationDate = DateTime.Now }).Insert(ds); if (status != DataStatus.Success) { throw new Exception(); } DataWhereQueue where = P("Id", id); if (value < 0) { where = WN("Money", -value, "OldMoney", ">=") & where; } status = (new MemberInfo() { Id = id }).Update(ds, ColumnMode.Include, Cs(MODC("Money", value)), where); if (status != DataStatus.Success) { throw new Exception(); } ds.Commit(); return(DataStatus.Success); } catch (Exception) { ds.Rollback(); return(DataStatus.Rollback); } }
public static IList <DataJoin <T, StatisticData> > GetTopByDay <T>(DataSource ds, int type, int count, DataColumn[] columns, string idName, DataWhereQueue where) where T : DbTable, new() { List <DataColumn> list = new List <DataColumn>(); if (columns == null) { list.Add(C <T>("*")); } else { list.AddRange(columns); } list.Add(C <StatisticData>("Day")); DataWhereQueue queue = P <StatisticData>("Type", type); if (queue != null) { queue &= where; } return(ExecuteReader <T, StatisticData>(ds, count, list.ToArray(), Os(Od <StatisticData>("Day"), Od <StatisticData>("Count"), Od <StatisticData>("Year"), Od <StatisticData>("Month"), Od <StatisticData>("Week")), idName, "TargetId", DataJoinType.Inner, queue)); }
public DataStatus Update(DataSource ds, ColumnMode mode, DataColumn[] columns, DataWhereQueue ps) { DataStatus status = OnUpdateBefor(ds, mode, ref columns); if (status == DataStatus.Success) { try { if (UpdateImpl(ds, mode, columns, ps) > 0) { status = OnUpdateAfter(ds); } else { OnUpdateFailed(ds); status = DataStatus.Failed; } } catch (Exception) { OnUpdateFailed(ds); status = DataStatus.Failed; //throw; } } return(status); }
public static bool ExecuteSingleRow <T>(T instance, DataSource ds, DataColumn[] columns, DataColumn[] group, DataOrder[] order, DataWhereQueue ps = null) where T : DbTable, new() { return(ds.ExecuteSingleRow <T>(instance, ds.Provider.BuildSelectSql(GetTableName <T>(), DataProvider.GetSqlString(columns, ds, false, true), DataProvider.GetSqlString(ps, ds, false, false), DataProvider.GetSqlString(order, ds, false, false), DataProvider.GetSqlString(group, ds, false, false)), DataWhereQueue.GetParameters(ps))); }
public static T ExecuteSingleRow <T>(DataSource ds, DataOrder[] order, DataWhereQueue ps = null) where T : DbTable, new() { return(ds.ExecuteSingleRow <T>(ds.Provider.BuildSelectSql(GetTableName <T>(), null, DataProvider.GetSqlString(ps, ds, false, false), DataProvider.GetSqlString(order, ds, false, false)), DataWhereQueue.GetParameters(ps))); }
public static DataJoin <A, B> ExecuteSingleRow <A, B>(DataSource ds, DataColumn[] columns, DataColumn[] group, DataOrder[] order, string aId, string bId, DataJoinType type = DataJoinType.Inner, DataWhereQueue ps = null) where A : DbTable, new() where B : DbTable, new() { return(ds.ExecuteSingleRow <DataJoin <A, B> >(ds.Provider.BuildSelectJoinSql(GetTableName <A>(), GetTableName <B>(), type, aId, bId, DataProvider.GetSqlString(columns, ds, true, true), DataProvider.GetSqlString(ps, ds, true, false), DataProvider.GetSqlString(order, ds, true, false), DataProvider.GetSqlString(group, ds, true, false)), DataWhereQueue.GetParameters(ps))); }