private WfProcessCollection LoadProcesses(Action <WhereSqlClauseBuilder> action) { action.NullCheck("action"); var whereBuilder = new WhereSqlClauseBuilder(); action(whereBuilder); var mapping = ORMapping.GetMappingInfo <WfProcessInstanceData>(); string[] fields = ORMapping.GetSelectFieldsName(mapping, "Data"); var sql = string.Format("SELECT {0},{1} FROM {2} WHERE {3}", string.Join(",", fields), BINARYDATA, mapping.TableName, whereBuilder.ToSqlString(TSqlBuilder.Instance)); var table = DbHelper.RunSqlReturnDS(sql, GetConnectionName()).Tables[0]; WfProcessCollection result = null; PerformanceMonitorHelper.GetDefaultMonitor().WriteExecutionDuration("DataTableToProcessCollection", () => result = DataTableToProcessCollection(table) ); return(result); }
protected override string PrepareInsertSql(T obj, ORMappingItemCollection mapping) { List <string> selectFieldNames = new List <string>(ORMapping.GetSelectFieldsName(mapping, "VersionStartTime", "VersionEndTime", "Status")); List <string> insertFieldNames = new List <string>(selectFieldNames); insertFieldNames.Add("VersionStartTime"); insertFieldNames.Add("VersionEndTime"); insertFieldNames.Add("Status"); StringBuilder strB = new StringBuilder(); strB.Append(TSqlBuilder.Instance.DBStatementSeperator); strB.AppendFormat("INSERT INTO {0}({1})", GetTableName(obj, mapping), string.Join(",", insertFieldNames)); strB.Append(TSqlBuilder.Instance.DBStatementSeperator); strB.AppendFormat("SELECT {0},{1},{2},{3} FROM {4} WHERE {5}", string.Join(",", selectFieldNames), "@currentTime", TSqlBuilder.Instance.FormatDateTime(ConnectionDefine.MaxVersionEndTime), (int)obj.Status, GetTableName(obj, mapping), this.PrepareWhereSqlBuilder(obj, mapping).ToSqlString(TSqlBuilder.Instance)); return(strB.ToString()); }
public override string PrepareInsertSql(VersionedSchemaObjectBase obj, ORMappingItemCollection mapping, string[] ignoreProperties) { List <string> selectFieldNames = new List <string>(ORMapping.GetSelectFieldsName(mapping, "VersionStartTime", "VersionEndTime", "Status")); selectFieldNames.Add("Data"); List <string> insertFieldNames = new List <string>(selectFieldNames); insertFieldNames.Add("VersionStartTime"); insertFieldNames.Add("VersionEndTime"); insertFieldNames.Add("Status"); StringBuilder strB = new StringBuilder(); strB.Append(TSqlBuilder.Instance.DBStatementSeperator); strB.AppendFormat("INSERT INTO {0}({1})", GetTableName(obj, mapping), string.Join(",", insertFieldNames)); strB.Append(TSqlBuilder.Instance.DBStatementSeperator); strB.AppendFormat("SELECT {0},{1},{2},{3} FROM {4} WHERE {5}", string.Join(",", selectFieldNames), "@currentTime", TSqlBuilder.Instance.FormatDateTime(DBTimePointActionContext.MaxVersionEndTime), (int)obj.Status, GetTableName(obj, mapping), this.PrepareWhereSqlBuilder(obj, mapping, ignoreProperties).ToSqlString(TSqlBuilder.Instance)); return(strB.ToString()); }
private WfProcessCollection LoadProcessesByActivityID(string activityID) { activityID.CheckStringIsNullOrEmpty("activityID"); ORMappingItemCollection mapping = ORMapping.GetMappingInfo <WfProcessInstanceData>(); string[] fields = ORMapping.GetSelectFieldsName(mapping, "Data"); string sql = string.Format("SELECT {0},{1} FROM {2} WHERE INSTANCE_ID IN (SELECT PROCESS_ID FROM WF.PROCESS_CURRENT_ACTIVITIES WHERE ACTIVITY_ID = {3})", string.Join(",", fields), BINARYDATA, mapping.TableName, TSqlBuilder.Instance.CheckQuotationMark(activityID, true)); DataTable table = DbHelper.RunSqlReturnDS(sql, GetConnectionName()).Tables[0]; return(DataTableToProcessCollection(table)); }
private VersionedSimpleObject GetExistedObject(T obj) { WhereSqlClauseBuilder keyBuilder = ORMapping.GetWhereSqlClauseBuilderByPrimaryKey(obj, this.GetMappingInfo()); string sql = string.Format("SELECT TOP 1 {0} FROM {1} WHERE {2} ORDER BY VersionStartTime DESC", string.Join(",", ORMapping.GetSelectFieldsName(this.GetMappingInfo(), "Data")), this.GetMappingInfo().TableName, keyBuilder.ToSqlString(TSqlBuilder.Instance)); DataTable table = DbHelper.RunSqlReturnDS(sql, this.GetConnectionName()).Tables[0]; VersionedSimpleObject result = null; if (table.Rows.Count > 0) { result = this.CreateSimpleObject(); ORMapping.DataRowToObject(table.Rows[0], result); } return(result); }
private UserAndContainerSnapshot GetExistedObject(SCMemberRelation mr) { UserAndContainerSnapshot condition = new UserAndContainerSnapshot(mr); WhereSqlClauseBuilder keyBuilder = ORMapping.GetWhereSqlClauseBuilderByPrimaryKey(condition, this.GetMappingInfo()); string sql = string.Format("SELECT TOP 1 {0} FROM {1} WHERE {2} ORDER BY VersionStartTime DESC", string.Join(",", ORMapping.GetSelectFieldsName(this.GetMappingInfo())), this.GetLoadingTableName(DateTime.MinValue), keyBuilder.ToSqlString(TSqlBuilder.Instance)); DataTable table = DbHelper.RunSqlReturnDS(sql, this.GetConnectionName()).Tables[0]; UserAndContainerSnapshot result = null; if (table.Rows.Count > 0) { result = new UserAndContainerSnapshot(); ORMapping.DataRowToObject(table.Rows[0], result); } return(result); }