private static SqlCommand ReadUpdateSql(string table, Action <List <string> > whereColunmAction, Action <List <string> > updateColumnAction)
        {
            SqlCommand    cmd          = new SqlCommand();
            List <string> whereColunms = new List <string>();

            whereColunmAction(whereColunms);
            List <string> updateColumns = new List <string>();

            updateColumnAction(updateColumns);
            WhereSqlClauseBuilder where = new WhereSqlClauseBuilder();
            whereColunms.ForEach(w =>
            {
                var p = AddParameter(cmd, w);
                where.AppendItem(w, p.ParameterName, "=", true);
            });
            UpdateSqlClauseBuilder update = new UpdateSqlClauseBuilder();

            updateColumns.ForEach(u =>
            {
                var p = AddParameter(cmd, u);
                update.AppendItem(u, p.ParameterName, "=", true);
            }
                                  );
            string sql = string.Format("UPDATE {0} SET {1} WHERE {2}", table,
                                       update.ToSqlString(TSqlBuilder.Instance),
                                       where.ToSqlString(TSqlBuilder.Instance));

            cmd.CommandText      = sql;
            cmd.CommandType      = CommandType.Text;
            cmd.UpdatedRowSource = UpdateRowSource.None;

            return(cmd);
        }
Example #2
0
        private static string PrepareUpdateData(SCLock lockData, bool forceOverride)
        {
            ORMappingItemCollection mappingInfo = GetMappingInfo();

            UpdateSqlClauseBuilder uBuilder = ORMapping.GetUpdateSqlClauseBuilder(lockData, mappingInfo);
            WhereSqlClauseBuilder  wBuilder = ORMapping.GetWhereSqlClauseBuilderByPrimaryKey(lockData, mappingInfo);

            if (forceOverride == false)
            {
                wBuilder.AppendItem("LockTime", "DATEADD(SECOND, -EffectiveTime, GETUTCDATE())", "<", true);
            }

            StringBuilder sql = new StringBuilder();

            sql.AppendFormat("UPDATE {0} SET {1} WHERE {2}",
                             mappingInfo.TableName,
                             uBuilder.ToSqlString(TSqlBuilder.Instance),
                             wBuilder.ToSqlString(TSqlBuilder.Instance));

            sql.Append(TSqlBuilder.Instance.DBStatementSeperator);

            sql.Append("SELECT @@ROWCOUNT");

            sql.Append(TSqlBuilder.Instance.DBStatementSeperator);

            sql.AppendFormat("SELECT * FROM {0} WHERE LockID = {1}",
                             GetMappingInfo().TableName,
                             TSqlBuilder.Instance.CheckUnicodeQuotationMark(lockData.LockID));

            return(sql.ToString());
        }
Example #3
0
        public void UpdateUserView(AMSUserView userView)
        {
            userView.NullCheck("userView");

            Dictionary<string, object> context = new Dictionary<string, object>();
            ORMappingItemCollection mappingInfo = this.GetMappingInfo(context);

            StringBuilder strB = new StringBuilder();

            UpdateSqlClauseBuilder updateBuilder = ORMapping.GetUpdateSqlClauseBuilder(userView, mappingInfo);

            updateBuilder.AppendItem("LastAccessTime", "GETUTCDATE()", "=", true);

            strB.AppendFormat("UPDATE {0} SET {1} WHERE {2}",
                mappingInfo.TableName, updateBuilder.ToSqlString(TSqlBuilder.Instance), 
                ORMapping.GetWhereSqlClauseBuilderByPrimaryKey(userView, mappingInfo).ToSqlString(TSqlBuilder.Instance));

            strB.Append(TSqlBuilder.Instance.DBStatementSeperator);

            strB.AppendFormat("IF @@ROWCOUNT = 0\n");
            strB.Append("BEGIN\n");
            strB.Append(this.GetInsertSql(userView, mappingInfo, context) + "\n");
            strB.Append(TSqlBuilder.Instance.DBStatementSeperator);

            string eventTableName = ORMapping.GetMappingInfo(typeof(AMSEvent)).TableName;

            strB.AppendFormat("UPDATE {0} SET Views = Views + 1 WHERE ID = {1}\n",
                eventTableName, TSqlBuilder.Instance.CheckUnicodeQuotationMark(userView.EventID));
            strB.Append("END\n");

            DbHelper.RunSqlWithTransaction(strB.ToString(), this.GetConnectionName());
        }
Example #4
0
        private void ForceStopEvents(IEnumerable <AMSEvent> events)
        {
            StringBuilder strB = new StringBuilder();

            foreach (AMSEvent eventData in events)
            {
                if (strB.Length > 0)
                {
                    strB.Append(TSqlBuilder.Instance.DBStatementSeperator);
                }

                WhereSqlClauseBuilder  wBuilder = ORMapping.GetWhereSqlClauseBuilderByPrimaryKey(eventData);
                UpdateSqlClauseBuilder uBuilder = new UpdateSqlClauseBuilder();

                uBuilder.AppendItem("State", AMSEventState.Stopping.ToString());
                uBuilder.AppendItem("EndTime", "GETUTCDATE()", "=", true);

                strB.AppendFormat("UPDATE {0} SET {1} WHERE {2}",
                                  this.GetTableName(),
                                  uBuilder.ToSqlString(TSqlBuilder.Instance),
                                  wBuilder.ToSqlString(TSqlBuilder.Instance));
            }

            if (strB.Length > 0)
            {
                DbHelper.RunSqlWithTransaction(strB.ToString(), this.GetConnectionName());
            }
        }
        public override void UpdateOperation()
        {
            DataView users_modify = new DataView(this.Context.OriginalData.Tables["USERS_INFO_EXTEND"], string.Empty, "ID", DataViewRowState.ModifiedCurrent);
            Database db           = DatabaseFactory.Create(this.Context.InitialParams.UserInfoExtend);

            foreach (DataRowView drs in users_modify)
            {
                UpdateSqlClauseBuilder uBuilder = new UpdateSqlClauseBuilder();

                uBuilder.AppendItem("MOBILE", drs["MOBILE"].ToString());
                uBuilder.AppendItem("OFFICE_TEL", drs["OFFICE_TEL"].ToString());
                uBuilder.AppendItem("IM_ADDRESS", drs["IM_ADDRESS"].ToString());

                WhereSqlClauseBuilder wBuilder = new WhereSqlClauseBuilder();
                wBuilder.AppendItem("ID", drs["ID"].ToString());

                string updatesql = string.Format("UPDATE USERS_INFO_EXTEND SET {0} where {1}", uBuilder.ToSqlString(TSqlBuilder.Instance), wBuilder.ToSqlString(TSqlBuilder.Instance));
                try
                {
                    int count = db.ExecuteNonQuery(CommandType.Text, updatesql);

                    if (count == 1)
                    {
                        this.UpdateCount++;
                        //this.Context.InitialParams.Log.Write(string.Format("USERS_INFO_EXTEND表ID是{0}的记录更新成功",
                        //drs["ID"].ToString()));
                    }
                }
                catch (Exception ex)
                {
                    this.Context.InitialParams.Log.Write(string.Format("用户扩展表 ID 是{0}的执行更新时出错,错误是{1}",
                                                                       drs["ID"].ToString(), ex.Message));
                }
            }
        }
Example #6
0
        private static UpdateSqlClauseBuilder GetUpdateSqlClauseBuilderByUserTask(UserTask task, UserTaskFieldDefine fields)
        {
            string[] ignoredProperties =
                GetIgnorPropertiesByEnum((int)fields, EnumItemDescriptionAttribute.GetDescriptionList(typeof(UserTaskFieldDefine)));

            UpdateSqlClauseBuilder uBuilder = ORMapping.GetUpdateSqlClauseBuilder <UserTask>(task, ignoredProperties);

            return(uBuilder.AppendTenantCode());
        }
Example #7
0
        protected virtual UpdateSqlClauseBuilder PrepareUpdateSqlBuilder(T obj, ORMappingItemCollection mapping)
        {
            //UpdateSqlClauseBuilder updateBuilder = new UpdateSqlClauseBuilder();
            UpdateSqlClauseBuilder updateBuilder = ORMapping.GetUpdateSqlClauseBuilder(obj, mapping);

            //updateBuilder.AppendItem(GetPropertyFieldName("VersionEndTime", mapping), "@currentTime", "=", true);

            return(updateBuilder);
        }
Example #8
0
        /// <summary>
        /// 生成更新SQL
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        public virtual string PrepareUpdateSql(DEEntityInstanceBase obj)
        {
            WhereSqlClauseBuilder  primaryKeyBuilder = PrepareWhereSqlBuilder(obj);
            UpdateSqlClauseBuilder updateBuilder     = PrepareUpdateSqlBuilder(obj);

            return(string.Format("UPDATE {0} SET {1} WHERE {2}",
                                 GetTableName(obj),
                                 updateBuilder.ToSqlString(TSqlBuilder.Instance),
                                 primaryKeyBuilder.ToSqlString(TSqlBuilder.Instance)));
        }
Example #9
0
        protected virtual string PrepareUpdateSql(T obj, ORMappingItemCollection mapping)
        {
            WhereSqlClauseBuilder  primaryKeyBuilder = PrepareWhereSqlBuilder(obj, mapping);
            UpdateSqlClauseBuilder updateBuilder     = PrepareUpdateSqlBuilder(obj, mapping);

            return(string.Format("UPDATE {0} SET {1} WHERE {2}",
                                 GetTableName(obj, mapping),
                                 updateBuilder.ToSqlString(TSqlBuilder.Instance),
                                 primaryKeyBuilder.ToSqlString(TSqlBuilder.Instance)));
        }
Example #10
0
        /// <summary>
        /// 批量更新某些字段的值
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="action"></param>
        /// <param name="where"></param>
        /// <returns></returns>
        public static string BathUpdate <T>(IConnectiveSqlClause where, Action <UpdateSqlClauseBuilder> action)
        {
            var updateBuilder = new UpdateSqlClauseBuilder();

            action(updateBuilder);
            return(String.Format("UPDATE {0} SET {1} WHERE {2}",
                                 ORMapping.GetMappingInfo <T>().TableName,
                                 updateBuilder.ToSqlString(TSqlBuilder.Instance),
                                 where.ToSqlString(TSqlBuilder.Instance)));
        }
Example #11
0
        /// <summary>
        /// 批量更新某些字段的值
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="graph"></param>
        /// <param name="where"></param>
        /// <param name="requriedpropertites"></param>
        /// <returns></returns>
        public static string BathUpdate <T>(T graph, string where, params string[] requriedpropertites)
        {
            var mapping = ORMapping.GetMappingInfo <T>();
            UpdateSqlClauseBuilder updateBuilder = ORMapping.GetUpdateSqlClauseBuilder(graph, mapping, GetExceptProperties <T>(requriedpropertites));

            return(String.Format("UPDATE {0} SET {1} WHERE {2}",
                                 mapping.TableName,
                                 updateBuilder.ToSqlString(TSqlBuilder.Instance),
                                 @where));
        }
Example #12
0
        private static UpdateSqlClauseBuilder GetUpdateSqlClauseBuilder <T>(T graph, DataModel mapping, string[] ignorProperties)
        {
            ExceptionHelper.FalseThrow <ArgumentNullException>(graph != null, "graph");
            ExceptionHelper.FalseThrow <ArgumentNullException>(mapping != null, "mapping");

            UpdateSqlClauseBuilder builder = new UpdateSqlClauseBuilder();

            FillSqlClauseBuilder(builder, graph, mapping, ClauseBindingFlags.Update,
                                 new DoSqlClauseBuilder <T>(DoInsertUpdateSqlClauseBuilder <T>), ignorProperties);

            return(builder);
        }
Example #13
0
        /// <summary>
        /// 修改过期时间。主要用于测试
        /// </summary>
        /// <param name="authenticationID"></param>
        /// <param name="expireTime"></param>
        public void UpdateExpireTime(string authenticationID, DateTime expireTime)
        {
            UpdateSqlClauseBuilder builder = new UpdateSqlClauseBuilder();

            builder.AppendItem("EXPIRE_TIME", expireTime);

            string sql = string.Format("UPDATE {0} SET {1} WHERE AUTHENTICATION_ID = {2}",
                                       this.GetMappingInfo().TableName,
                                       builder.ToSqlString(TSqlBuilder.Instance),
                                       TSqlBuilder.Instance.CheckUnicodeQuotationMark(authenticationID));

            ExecuteNonQuery(sql);
        }
Example #14
0
        /// <summary>
        /// 创建更新SQL语句生成器
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        public virtual UpdateSqlClauseBuilder PrepareUpdateSqlBuilder(DEEntityInstanceBase obj)
        {
            UpdateSqlClauseBuilder builder = new UpdateSqlClauseBuilder();

            foreach (var filed in obj.Fields)
            {
                if (filed.Definition.IsInSnapshot)
                {
                    builder.AppendItem(filed.Definition.Name, filed.GetRealValue());
                }
            }
            return(builder);
        }
Example #15
0
        protected override string GetUpdateSql(WeChatFriend data, ORMappingItemCollection mappings, Dictionary <string, object> context)
        {
            UpdateSqlClauseBuilder uBuilder = ORMapping.GetUpdateSqlClauseBuilder(data, mappings, "OpenID");

            WhereSqlClauseBuilder wBuilder = ORMapping.GetWhereSqlClauseBuilderByPrimaryKey(data, mappings);

            string sql = string.Format("UPDATE {0} SET {1} WHERE {2}",
                                       mappings.TableName,
                                       uBuilder.ToSqlString(TSqlBuilder.Instance),
                                       wBuilder.ToSqlString(TSqlBuilder.Instance));

            return(sql);
        }
Example #16
0
        private static int eventContainer_UpdateUserTask(UserTask task, UserTaskIDType idType, UserTaskFieldDefine fields, Dictionary <object, object> context)
        {
            ExceptionHelper.FalseThrow <ArgumentNullException>(task != null, "task");

            WhereSqlClauseBuilder  wBuilder = GetWhereSqlClauseBuilderByUserTask(task, idType);
            UpdateSqlClauseBuilder uBuilder = GetUpdateSqlClauseBuilderByUserTask(task, fields);

            string sql = string.Format("UPDATE WF.USER_TASK SET {0} WHERE {1}",
                                       uBuilder.ToSqlString(TSqlBuilder.Instance),
                                       wBuilder.ToSqlString(TSqlBuilder.Instance));

            return(DbHelper.RunSql(sql, GetConnectionName()));
        }
Example #17
0
        private static string GetUpdateSql <T>(T graph, DataModel mapping, ISqlBuilder builder, string[] ignorProperties)
        {
            ExceptionHelper.FalseThrow <ArgumentNullException>(graph != null, "graph");
            ExceptionHelper.FalseThrow <ArgumentNullException>(mapping != null, "mapping");
            ExceptionHelper.FalseThrow <ArgumentNullException>(builder != null, "builder");

            UpdateSqlClauseBuilder updateBuilder = GetUpdateSqlClauseBuilder(graph, mapping, ignorProperties);
            WhereSqlClauseBuilder  whereBuilder  = GetWhereSqlClauseBuilderByPrimaryKey(graph, mapping);

            return(string.Format("UPDATE {0} SET {1} WHERE {2}",
                                 mapping.TableName,
                                 updateBuilder.ToSqlString(builder),
                                 whereBuilder.ToSqlString(builder)));
        }
Example #18
0
        /// <summary>
        /// 更新某一状态下所有时间的完成时间
        /// </summary>
        /// <param name="endTime"></param>
        /// <param name="state"></param>
        /// <returns></returns>
        public int UpdateEndTime(DateTime endTime, AMSEventState state)
        {
            SqlClauseBuilderBase wBuilder = new WhereSqlClauseBuilder().AppendItem("State", state.ToString());

            SqlClauseBuilderBase uBuilder = new UpdateSqlClauseBuilder().AppendItem("EndTime", endTime);

            Dictionary <string, object> context  = new Dictionary <string, object>();
            ORMappingItemCollection     mappings = this.GetMappingInfo(context);

            string sql = string.Format("UPDATE {0} SET {1} WHERE {2}",
                                       mappings.TableName, uBuilder.ToSqlString(TSqlBuilder.Instance), wBuilder.ToSqlString(TSqlBuilder.Instance));

            return(DbHelper.RunSql(sql, this.GetConnectionName()));
        }
Example #19
0
        /// <summary>
        /// 根据对象拼Update语句时的方法
        /// </summary>
        /// <typeparam name="T">对象类型</typeparam>
        /// <param name="graph">对象</param>
        /// <param name="mapping">映射关系</param>
        /// <param name="ignoreProperties">忽略的字段</param>
        /// <returns>UpdateSqlClauseBuilder对象,供拼Update语句使用</returns>
        /// <remarks>
        /// 根据传入的对象和对象映射时需要忽略的字段,返回UpdateSqlClauseBuilder对象,以供后续拼Update语句的字段名称和Values部分
        /// <code source="..\Framework\TestProjects\DeluxeWorks.Library.Data.SqlBuilder.Test\ORMappingTest.cs" region="GetUpdateSqlClauseBuilder" lang="cs" title="拼Update语句"/>
        /// <see cref="MCS.Library.Data.Builder.UpdateSqlClauseBuilder"/>
        /// </remarks>
        public static UpdateSqlClauseBuilder GetUpdateSqlClauseBuilder <T>(T graph, ORMappingItemCollection mapping, params string[] ignoreProperties)
        {
            ExceptionHelper.FalseThrow <ArgumentNullException>(graph != null, "graph");
            ExceptionHelper.FalseThrow <ArgumentNullException>(mapping != null, "mapping");

            UpdateSqlClauseBuilder builder = new UpdateSqlClauseBuilder();

            FillSqlClauseBuilder(builder, graph, mapping, ClauseBindingFlags.Update,
                                 new DoSqlClauseBuilder <T>(DoInsertUpdateSqlClauseBuilder <T>), ignoreProperties);

            //builder.AppendTenantCode(typeof(T));

            return(builder);
        }
Example #20
0
        protected override string GetUpdateSql(WfProcessDescriptorDimension data, ORMappingItemCollection mappings, Dictionary <string, object> context)
        {
            UpdateSqlClauseBuilder uBuilder = ORMapping.GetUpdateSqlClauseBuilder(data, mappings);

            uBuilder.AppendTenantCode();

            WhereSqlClauseBuilder wBuilder = ORMapping.GetWhereSqlClauseBuilderByPrimaryKey(data, mappings);

            wBuilder.AppendTenantCode();

            return(string.Format("UPDATE {0} SET {1} WHERE {2}",
                                 mappings.TableName,
                                 uBuilder.ToSqlString(TSqlBuilder.Instance),
                                 wBuilder.ToSqlString(TSqlBuilder.Instance)));
        }
        protected override string GetUpdateSql(TxProcess data, ORMappingItemCollection mappings, Dictionary <string, object> context, string[] ignoreProperties)
        {
            UpdateSqlClauseBuilder uBuilder = ORMapping.GetUpdateSqlClauseBuilder(data, mappings, ignoreProperties);

            string serilizedProcess = GetSerilizedProcess(data);

            uBuilder.AppendItem("DATA", serilizedProcess);

            context["SerilizedProcess"] = serilizedProcess;

            WhereSqlClauseBuilder wBuilder = ORMapping.GetWhereSqlClauseBuilderByPrimaryKey(data);

            return(string.Format("UPDATE {0} SET {1} WHERE {2}", this.GetTableName(),
                                 uBuilder.ToSqlString(TSqlBuilder.Instance), wBuilder.ToSqlString(TSqlBuilder.Instance)));
        }
        protected override string GetUpdateSql(T data, ORMappingItemCollection mappings, Dictionary <string, object> context)
        {
            UpdateSqlClauseBuilder uBuilder = ORMapping.GetUpdateSqlClauseBuilder(data, mappings, "UpdateTime");

            uBuilder.AppendItem("UpdateTime", "GETDATE()", "=", true);

            WhereSqlClauseBuilder wBuilder = ORMapping.GetWhereSqlClauseBuilderByPrimaryKey(data, mappings);

            string sql = string.Format("UPDATE {0} SET {1} WHERE {2}",
                                       mappings.TableName,
                                       uBuilder.ToSqlString(TSqlBuilder.Instance),
                                       wBuilder.ToSqlString(TSqlBuilder.Instance));

            return(sql);
        }
Example #23
0
        protected override string GetUpdateSql(SysTaskProcess data, ORMappingItemCollection mappings, Dictionary <string, object> context)
        {
            UpdateSqlClauseBuilder uBuilder = ORMapping.GetUpdateSqlClauseBuilder(data, mappings, "UpdateTag");

            uBuilder.AppendItem("UPDATE_TAG", "UPDATE_TAG + 1", "=", true);

            WhereSqlClauseBuilder wBuilder = ORMapping.GetWhereSqlClauseBuilderByPrimaryKey(data, mappings);

            wBuilder.AppendItem("UPDATE_TAG", data.UpdateTag);

            return(string.Format("UPDATE {0} SET {1} WHERE {2}",
                                 mappings.TableName,
                                 uBuilder.ToSqlString(TSqlBuilder.Instance),
                                 wBuilder.ToSqlString(TSqlBuilder.Instance)));
        }
Example #24
0
        /// <summary>
        /// 更新频道的状态
        /// </summary>
        /// <param name="channelID"></param>
        /// <param name="state"></param>
        /// <returns></returns>
        public int UpdateState(string channelID, AMSChannelState state)
        {
            channelID.CheckStringIsNullOrEmpty("channelID");

            SqlClauseBuilderBase wBuilder = new WhereSqlClauseBuilder().AppendItem("ID", channelID);

            Dictionary <string, object> context  = new Dictionary <string, object>();
            ORMappingItemCollection     mappings = this.GetMappingInfo(context);

            SqlClauseBuilderBase uBuilder = new UpdateSqlClauseBuilder().AppendItem("State", state.ToString());

            string sql = string.Format("UPDATE {0} SET {1} WHERE {2}",
                                       mappings.TableName, uBuilder.ToSqlString(TSqlBuilder.Instance), wBuilder.ToSqlString(TSqlBuilder.Instance));

            return(DbHelper.RunSql(sql, this.GetConnectionName()));
        }
Example #25
0
        /// <summary>
        /// 得到更新当前快照的SQL
        /// </summary>
        /// <param name="srcTableName"></param>
        /// <param name="targetTableName"></param>
        /// <param name="builder"></param>
        /// <returns></returns>
        private string GetInternalUpdateCurrentSnapshotSql(string srcTableName, string targetTableName, IConnectiveSqlClause builder)
        {
            builder.NullCheck("builder");

            StringBuilder strB = new StringBuilder();

            if (builder.IsEmpty == false)
            {
                IConnectiveSqlClause timePointBuilder = VersionStrategyQuerySqlBuilder.Instance.TimePointToBuilder(DateTime.MinValue);

                ConnectiveSqlClauseCollection connectiveBuilder = new ConnectiveSqlClauseCollection(builder, timePointBuilder);

                string sql = string.Format("SELECT * FROM {0} WHERE Status = {1} AND {2}",
                                           srcTableName,
                                           (int)SchemaObjectStatus.Normal,
                                           connectiveBuilder.ToSqlString(TSqlBuilder.Instance));

                DataTable table = DbHelper.RunSqlReturnDS(sql, this.GetConnectionName()).Tables[0];

                if (table.Rows.Count > 0)
                {
                    UpdateSqlClauseBuilder updateBuilder = new UpdateSqlClauseBuilder();
                    DataRowToBuilder(table.Rows[0], updateBuilder, "RowUniqueID");

                    InsertSqlClauseBuilder insertBuilder = new InsertSqlClauseBuilder();
                    DataRowToBuilder(table.Rows[0], insertBuilder);

                    strB.AppendFormat("UPDATE {0} SET {1} WHERE {2}",
                                      targetTableName,
                                      updateBuilder.ToSqlString(TSqlBuilder.Instance),
                                      builder.ToSqlString(TSqlBuilder.Instance));

                    strB.Append(TSqlBuilder.Instance.DBStatementSeperator);
                    strB.Append("IF @@ROWCOUNT = 0");
                    strB.Append(TSqlBuilder.Instance.DBStatementSeperator);
                    strB.AppendFormat("INSERT INTO {0} {1}",
                                      targetTableName,
                                      insertBuilder.ToSqlString(TSqlBuilder.Instance));
                }
                else
                {
                    strB.AppendFormat("DELETE {0} WHERE {1}", targetTableName, builder.ToSqlString(TSqlBuilder.Instance));
                }
            }

            return(strB.ToString());
        }
        protected override string GetUpdateSql(WfDelegation data, ORMappingItemCollection mappings, Dictionary <string, object> context, string[] ignoreProperties)
        {
            UpdateSqlClauseBuilder uBuilder = ORMapping.GetUpdateSqlClauseBuilder(data, mappings, "ApplicationName", "ProgramName");

            uBuilder.AppendItem("APPLICATION_NAME", data.ApplicationName.IsNotEmpty() ? data.ApplicationName : string.Empty);
            uBuilder.AppendItem("PROGRAM_NAME", data.ProgramName.IsNotEmpty() ? data.ProgramName : string.Empty);

            WhereSqlClauseBuilder wBuilder = ORMapping.GetWhereSqlClauseBuilderByPrimaryKey(data, mappings, "ApplicationName", "ProgramName");

            wBuilder.AppendItem("APPLICATION_NAME", data.ApplicationName.IsNotEmpty() ? data.ApplicationName : string.Empty);
            wBuilder.AppendItem("PROGRAM_NAME", data.ProgramName.IsNotEmpty() ? data.ProgramName : string.Empty);

            return(string.Format("UPDATE {0} SET {1} WHERE {2}",
                                 mappings.TableName,
                                 uBuilder.ToSqlString(TSqlBuilder.Instance),
                                 wBuilder.ToSqlString(TSqlBuilder.Instance)));
        }
Example #27
0
        public override void UpdateOperation()
        {
            DataView ouusers = new DataView(this.Context.OriginalData.Tables["OU_USERS"], string.Empty, "PARENT_GUID,USER_GUID", DataViewRowState.ModifiedCurrent);
            Database db      = DatabaseFactory.Create(this.Context.InitialParams.AccreditAdminConnectionName);

            foreach (DataRowView drs in ouusers)
            {
                UpdateSqlClauseBuilder uBuilder = new UpdateSqlClauseBuilder();

                uBuilder.AppendItem("DISPLAY_NAME", drs["DISPLAY_NAME"].ToString());
                uBuilder.AppendItem("OBJ_NAME", drs["OBJ_NAME"].ToString());
                uBuilder.AppendItem("ALL_PATH_NAME", drs["ALL_PATH_NAME"].ToString());
                uBuilder.AppendItem("INNER_SORT", drs["INNER_SORT"].ToString());

                uBuilder.AppendItem("GLOBAL_SORT", drs["GLOBAL_SORT"].ToString());
                uBuilder.AppendItem("ORIGINAL_SORT", drs["ORIGINAL_SORT"].ToString());
                uBuilder.AppendItem("SEARCH_NAME", drs["SEARCH_NAME"].ToString());
                uBuilder.AppendItem("MODIFY_TIME", TSqlBuilder.Instance.DBCurrentTimeFunction, "=", true);
                uBuilder.AppendItem("STATUS", drs["STATUS"].ToString());//by majun 20120216

                WhereSqlClauseBuilder wBuilder = new WhereSqlClauseBuilder();

                wBuilder.AppendItem("PARENT_GUID", drs["PARENT_GUID"].ToString());
                wBuilder.AppendItem("USER_GUID", drs["USER_GUID"].ToString());
                //wBuilder.AppendItem("STATUS", drs["STATUS"].ToString());//by majun 20120216

                string updatesql = string.Format("UPDATE OU_USERS SET {0} where {1}", uBuilder.ToSqlString(TSqlBuilder.Instance), wBuilder.ToSqlString(TSqlBuilder.Instance));

                try
                {
                    int count = db.ExecuteNonQuery(CommandType.Text, updatesql);

                    if (count == 1)
                    {
                        this.UpdateCount++;
                        //this.Context.InitialParams.Log.Write(string.Format("OU_USERS表 PARENT_GUID是{0},USER_GUID是{1}的记录更新成功,ALL_PATH_NAME是'{2}'",
                        //drs["PARENT_GUID"].ToString(), drs["USER_GUID"].ToString(), drs["ALL_PATH_NAME"]).ToString());
                    }
                }
                catch (Exception ex)
                {
                    this.Context.InitialParams.Log.Write(string.Format("OU_USERS表 PARENT_GUID是{0}USER_GUID 是{1}的记录执行更新时出错,错误是{2}",
                                                                       drs["PARENT_GUID"].ToString(), drs["USER_GUID"].ToString(), ex.Message));
                }
            }
        }
Example #28
0
        /// <summary>
        /// 根据对象拼Insert语句
        /// </summary>
        /// <typeparam name="T">对象类型</typeparam>
        /// <param name="graph">对象</param>
        /// <param name="mapping">映射关系</param>
        /// <param name="builder">生成Sql语句类型的Builder如TSqlBuilder或PlSqlBuilder</param>
        /// <param name="ignoreProperties">忽略的字段</param>
        /// <returns>根据传入的对象和对象映射时需要忽略的字段以及类定义上的表名,生成完整的Insert语句</returns>
        public static string GetUpdateSql <T>(T graph, ORMappingItemCollection mapping, ISqlBuilder builder, params string[] ignoreProperties)
        {
            ExceptionHelper.FalseThrow <ArgumentNullException>(graph != null, "graph");
            ExceptionHelper.FalseThrow <ArgumentNullException>(mapping != null, "mapping");
            ExceptionHelper.FalseThrow <ArgumentNullException>(builder != null, "builder");

            using (ORMappingContext context = ORMappingContext.GetContext())
            {
                UpdateSqlClauseBuilder updateBuilder = GetUpdateSqlClauseBuilder(graph, mapping, ignoreProperties);
                WhereSqlClauseBuilder  whereBuilder  = GetWhereSqlClauseBuilderByPrimaryKey(graph, mapping);

                return(string.Format("UPDATE {0} SET {1} WHERE {2}",
                                     mapping.TableName,
                                     updateBuilder.ToSqlString(builder),
                                     whereBuilder.ToSqlString(builder)));
            }
        }
Example #29
0
        /// <summary>
        /// 重发一个新的Code。
        /// </summary>
        /// <param name="authenticationID"></param>
        /// <param name="codeLength"></param>
        /// <returns>重新生成的Code</returns>
        public string ReissueCode(string authenticationID, int codeLength)
        {
            string result = AuthenticationCode.GenerateCode(codeLength);

            UpdateSqlClauseBuilder builder = new UpdateSqlClauseBuilder();

            builder.AppendItem("AUTHENTICATION_CODE", result);
            builder.AppendItem("EXPIRE_TIME", string.Format("DATEADD(second, {0}, GETDATE())", 1800), "=", true);

            string sql = string.Format("UPDATE {0} SET {1} WHERE AUTHENTICATION_ID = {2}",
                                       this.GetMappingInfo().TableName,
                                       builder.ToSqlString(TSqlBuilder.Instance),
                                       TSqlBuilder.Instance.CheckUnicodeQuotationMark(authenticationID));

            ExecuteNonQuery(sql);

            return(result);
        }
Example #30
0
        protected override UpdateSqlClauseBuilder PrepareUpdateSqlBuilder(NoVersionedEntityInstanceObjectBase obj, ORMappingItemCollection mapping)
        {
            NoVersionedEntityInstanceObjectBase schemaObj = (NoVersionedEntityInstanceObjectBase)obj;

            if (OguBase.IsNullOrEmpty(schemaObj.Creator))
            {
                if (DeluxePrincipal.IsAuthenticated)
                {
                    schemaObj.Creator = DeluxeIdentity.CurrentUser;
                }
            }

            UpdateSqlClauseBuilder builder = base.PrepareUpdateSqlBuilder(obj, mapping);

            builder.AppendItem("Data", obj.ToString());

            return(builder);
        }
		/// <summary>
		/// 重发一个新的Code。
		/// </summary>
		/// <param name="authenticationID"></param>
		/// <param name="codeLength"></param>
		/// <returns>重新生成的Code</returns>
		public string ReissueCode(string authenticationID, int codeLength)
		{
			string result = AuthenticationCode.GenerateCode(codeLength);

			UpdateSqlClauseBuilder builder = new UpdateSqlClauseBuilder();

			builder.AppendItem("AUTHENTICATION_CODE", result);
			builder.AppendItem("EXPIRE_TIME", string.Format("DATEADD(second, {0}, GETDATE())", 1800), "=", true);

			string sql = string.Format("UPDATE {0} SET {1} WHERE AUTHENTICATION_ID = {2}",
				this.GetMappingInfo().TableName,
				builder.ToSqlString(TSqlBuilder.Instance),
				TSqlBuilder.Instance.CheckUnicodeQuotationMark(authenticationID));

			ExecuteNonQuery(sql);

			return result;
		}
		public override void UpdateOperation()
		{
			DataView ouusers = new DataView(this.Context.OriginalData.Tables["OU_USERS"], string.Empty, "PARENT_GUID,USER_GUID", DataViewRowState.ModifiedCurrent);
			Database db = DatabaseFactory.Create(this.Context.InitialParams.AccreditAdminConnectionName);
			foreach (DataRowView drs in ouusers)
			{
				UpdateSqlClauseBuilder uBuilder = new UpdateSqlClauseBuilder();

				uBuilder.AppendItem("DISPLAY_NAME", drs["DISPLAY_NAME"].ToString());
				uBuilder.AppendItem("OBJ_NAME", drs["OBJ_NAME"].ToString());
				uBuilder.AppendItem("ALL_PATH_NAME", drs["ALL_PATH_NAME"].ToString());
				uBuilder.AppendItem("INNER_SORT", drs["INNER_SORT"].ToString());

				uBuilder.AppendItem("GLOBAL_SORT", drs["GLOBAL_SORT"].ToString());
				uBuilder.AppendItem("ORIGINAL_SORT", drs["ORIGINAL_SORT"].ToString());
				uBuilder.AppendItem("SEARCH_NAME", drs["SEARCH_NAME"].ToString());
				uBuilder.AppendItem("MODIFY_TIME", TSqlBuilder.Instance.DBCurrentTimeFunction, "=", true);
                uBuilder.AppendItem("STATUS", drs["STATUS"].ToString());//by majun 20120216

				WhereSqlClauseBuilder wBuilder = new WhereSqlClauseBuilder();

				wBuilder.AppendItem("PARENT_GUID", drs["PARENT_GUID"].ToString());
				wBuilder.AppendItem("USER_GUID", drs["USER_GUID"].ToString());
                //wBuilder.AppendItem("STATUS", drs["STATUS"].ToString());//by majun 20120216

				string updatesql = string.Format("UPDATE OU_USERS SET {0} where {1}", uBuilder.ToSqlString(TSqlBuilder.Instance), wBuilder.ToSqlString(TSqlBuilder.Instance));

				try
				{
					int count = db.ExecuteNonQuery(CommandType.Text, updatesql);

					if (count == 1)
					{
						this.UpdateCount++;
						//this.Context.InitialParams.Log.Write(string.Format("OU_USERS表 PARENT_GUID是{0},USER_GUID是{1}的记录更新成功,ALL_PATH_NAME是'{2}'",
						//drs["PARENT_GUID"].ToString(), drs["USER_GUID"].ToString(), drs["ALL_PATH_NAME"]).ToString());
					}
				}
				catch (Exception ex)
				{
					this.Context.InitialParams.Log.Write(string.Format("OU_USERS表 PARENT_GUID是{0}USER_GUID 是{1}的记录执行更新时出错,错误是{2}",
						drs["PARENT_GUID"].ToString(), drs["USER_GUID"].ToString(), ex.Message));
				}

			}
		}
		public override void UpdateOperation()
		{
			//更新用户表

			DataView users = new DataView(this.Context.OriginalData.Tables["USERS"], string.Empty, "GUID", DataViewRowState.ModifiedCurrent);
			Database db = DatabaseFactory.Create(this.Context.InitialParams.AccreditAdminConnectionName);

			foreach (DataRowView drs in users)
			{

				UpdateSqlClauseBuilder uBuilder = new UpdateSqlClauseBuilder();

				uBuilder.AppendItem("FIRST_NAME", drs["FIRST_NAME"].ToString());
				uBuilder.AppendItem("LAST_NAME", drs["LAST_NAME"].ToString());
				uBuilder.AppendItem("LOGON_NAME", drs["LOGON_NAME"].ToString());
				uBuilder.AppendItem("USER_PWD", drs["USER_PWD"].ToString());
				uBuilder.AppendItem("PINYIN", drs["PINYIN"].ToString());
				uBuilder.AppendItem("E_MAIL", drs["E_MAIL"].ToString());

				uBuilder.AppendItem("MODIFY_TIME", TSqlBuilder.Instance.DBCurrentTimeFunction, "=", true);

				WhereSqlClauseBuilder wBuilder = new WhereSqlClauseBuilder();
				wBuilder.AppendItem("GUID", drs["GUID"].ToString());

				string updatesql = string.Format("UPDATE USERS SET {0} where {1}", uBuilder.ToSqlString(TSqlBuilder.Instance), wBuilder.ToSqlString(TSqlBuilder.Instance));
				try
				{
					int count = db.ExecuteNonQuery(CommandType.Text, updatesql);

					if (count == 1)
					{
						this.UpdateCount++;
						//this.Context.InitialParams.Log.Write(string.Format("USERS表GUID是{0}的记录更新成功",
						//   drs["GUID"].ToString()));
					}
				}
				catch (Exception ex)
				{
					this.Context.InitialParams.Log.Write(string.Format("用户表GUID 是{0},LogonName是{1}的记录执行更新时出错,错误是{2}",
						drs["GUID"].ToString(), drs["LOGON_NAME"].ToString(), ex.Message));
				}

			}
		}
		/// <summary>
		/// 修改过期时间。主要用于测试
		/// </summary>
		/// <param name="authenticationID"></param>
		/// <param name="expireTime"></param>
		public void UpdateExpireTime(string authenticationID, DateTime expireTime)
		{
			UpdateSqlClauseBuilder builder = new UpdateSqlClauseBuilder();

			builder.AppendItem("EXPIRE_TIME", expireTime);

			string sql = string.Format("UPDATE {0} SET {1} WHERE AUTHENTICATION_ID = {2}",
				this.GetMappingInfo().TableName,
				builder.ToSqlString(TSqlBuilder.Instance),
				TSqlBuilder.Instance.CheckUnicodeQuotationMark(authenticationID));

			ExecuteNonQuery(sql);
		}
		public override void UpdateOperation()
		{
			DataView users_modify = new DataView(this.Context.OriginalData.Tables["USERS_INFO_EXTEND"], string.Empty, "ID", DataViewRowState.ModifiedCurrent);
			Database db = DatabaseFactory.Create(this.Context.InitialParams.UserInfoExtend);

			foreach (DataRowView drs in users_modify)
			{
				UpdateSqlClauseBuilder uBuilder = new UpdateSqlClauseBuilder();

				uBuilder.AppendItem("MOBILE", drs["MOBILE"].ToString());
				uBuilder.AppendItem("OFFICE_TEL", drs["OFFICE_TEL"].ToString());
				uBuilder.AppendItem("IM_ADDRESS", drs["IM_ADDRESS"].ToString());

				WhereSqlClauseBuilder wBuilder = new WhereSqlClauseBuilder();
				wBuilder.AppendItem("ID", drs["ID"].ToString());

				string updatesql = string.Format("UPDATE USERS_INFO_EXTEND SET {0} where {1}", uBuilder.ToSqlString(TSqlBuilder.Instance), wBuilder.ToSqlString(TSqlBuilder.Instance));
				try
				{
					int count = db.ExecuteNonQuery(CommandType.Text, updatesql);

					if (count == 1)
					{
						this.UpdateCount++;
						//this.Context.InitialParams.Log.Write(string.Format("USERS_INFO_EXTEND表ID是{0}的记录更新成功",
						//drs["ID"].ToString()));
					}
				}
				catch (Exception ex)
				{
					this.Context.InitialParams.Log.Write(string.Format("用户扩展表 ID 是{0}的执行更新时出错,错误是{1}",
						drs["ID"].ToString(), ex.Message));
				}
			}
		}