예제 #1
0
        /// <summary>
        /// 获取表结构
        /// </summary>
        /// <param name="TableName"></param>
        /// <param name="Version"></param>
        /// <returns></returns>
        public static List <Field> GetTableSchema(string TableName, string Version = "V10")
        {
            var          dtColumns  = new DataTable();
            List <Field> Fields     = new List <Field>();
            var          sqlColumns = string.Format(@"SELECT
	*
FROM INFORMATION_SCHEMA.COLUMNS t
WHERE t.TABLE_NAME = '{0}'
ORDER BY t.ORDINAL_POSITION", TableName);

            switch (Version)
            {
            case "V9":
                dtColumns = H3DBHelper.GetDataTable(sqlColumns);
                break;

            default:
                dtColumns = OThinker.H3.Controllers.AppUtility.Engine.Query.QueryTable(sqlColumns);
                break;
            }
            foreach (DataRow ItemCol in dtColumns.Rows)
            {
                Field field = new Field();
                field.Name = ItemCol["column_name"].ToString();
                field.Type = ItemCol["data_type"].ToString();
                if (ItemCol["DATA_TYPE"].ToString().ToLower() == "char" || ItemCol["DATA_TYPE"].ToString().ToLower() == "nvarchar")
                {
                    field.Length = ItemCol["CHARACTER_MAXIMUM_LENGTH"].ToString();
                }
                Fields.Add(field);
            }

            return(Fields);
        }
예제 #2
0
        private void CreateSystemTable()
        {
            var sqltable = string.Format(@"SELECT
	*
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
AND Table_Name  LIKE 'OT_%'");

            var dt = H3DBHelper.GetDataTable(sqltable);

            foreach (DataRow item in dt.Rows)
            {
                CreateDBScript(item["TABLE_NAME"].ToString());
            }
        }
예제 #3
0
        private void CreateCustomerTable()
        {
            var sqltable = string.Format(@"SELECT
	*
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
AND Table_Name  LIKE 'I_%'");

            var dt = H3DBHelper.GetDataTable(sqltable);

            foreach (DataRow item in dt.Rows)
            {
                var TableName = item["TABLE_NAME"].ToString();

                var temp = DataBusiness.GetTableCols(TableName);

                DataBusiness.CreateTable(temp);
                DataBusiness.CreateType(temp);
                DataBusiness.CreateProc(temp);
            }
        }
예제 #4
0
 public static void SyncTable(string[] TableName)
 {
     try
     {
         var ProcName   = "Proc_" + TableName[0];
         var SqlTable   = GetTableSql(TableName);
         var dt         = H3DBHelper.GetDataTable(SqlTable);
         var Parameters = new List <SqlParameter>();
         Parameters.Add(new SqlParameter()
         {
             ParameterName = "@TempTable", Value = dt
         });
         var Result = H3DBHelper.ExecuteProcNonQuery(ProcName, Parameters);
         LogHelper.Info("导入成功:" + TableName);
     }
     catch (Exception ex)
     {
         LogHelper.Debug("导入报错:" + TableName);
         LogHelper.Error("导入报错:" + ex.Message);
     }
 }
예제 #5
0
        /// <summary>
        /// 角色同步
        /// </summary>
        private void SyncRole()
        {
            //角色
            //说明V10版本中的角色相当于V9版本中职务、岗位、编制的集合。所以在同步时,要进行转化
            //岗位名称->角色名称
            //岗位编码->角色编码
            //岗位成员->角色用户
            //岗位所在部门->角色管理范围

            var sqlorgjob = string.Format(@"SELECT
	[ObjectID]
   ,[Code]
   ,[SuperiorCode]
   ,[DisplayName]
   ,[Description]
   ,[ParentObjectID]
   ,[ParentPropertyName]
   ,[ParentIndex]
   ,[Level]
FROM [OT_OrgJob]
ORDER BY Code");
            var dtjob     = H3DBHelper.GetDataTable(sqlorgjob);

            foreach (DataRow item in dtjob.Rows)
            {
                var orgpost = new OThinker.Organization.OrgPost
                {
                    ObjectID = item["ObjectID"].ToString(),
                    Code     = item["Code"].ToString(),
                    Name     = item["DisplayName"].ToString(),
                    JobLevel = item["Level"].ToString() == "" ? 0 : int.Parse(item["Level"].ToString())
                };

                var staff = string.Format(@"SELECT
	                                            t3.ChildID
                                               ,t2.ParentID
                                               ,t1.Code
                                            FROM OT_OrgJob t1
	                                            ,OT_OrgPost t2
	                                            ,OT_GroupChild t3
                                            WHERE t1.Code = t2.JobCode
                                            AND t2.ObjectID = t3.ParentObjectID
                                            AND t1.Code='{0}'
                                            ORDER BY t1.Code, t2.Code, t2.ParentID", orgpost.Code);

                var dtorgstaff = H3DBHelper.GetDataTable(staff);
                var list       = new List <OThinker.Organization.OrgStaff>();
                foreach (DataRow item2 in dtorgstaff.Rows)
                {
                    var orgstaff = new OThinker.Organization.OrgStaff
                    {
                        OUScope        = new string[] { item2["ParentID"].ToString() },
                        UserID         = item2["ChildID"].ToString(),
                        ParentObjectID = orgpost.ObjectID
                    };
                    list.Add(orgstaff);
                }
                orgpost.ChildList = list.ToArray();
                OThinker.H3.Controllers.AppUtility.Engine.Organization.AddUnit("", orgpost);
            }


            //编制名称->角色名称
            //编制编码->角色编码
            //编制成员->角色用户
            //编制管理部门->角色管理范围

            //组
            var sqlgroup = string.Format(@"SELECT
	                                            ObjectID
                                               ,Name
                                               ,Code
                                               ,ParentID
                                            FROM [OT_Group]");
            var dtgroup  = H3DBHelper.GetDataTable(sqlgroup);

            foreach (DataRow item in dtgroup.Rows)
            {
                var group = new OThinker.Organization.Group()
                {
                    ObjectID = item["ObjectID"].ToString(),
                    Name     = item["Name"].ToString(),
                    ParentID = item["ParentID"].ToString()
                };
                var groupchild = string.Format(@"SELECT
	                                                *
                                                FROM OT_GroupChild
                                                WHERE ParentObjectID = '{0}'", item["ObjectID"].ToString());
                var dtchild    = H3DBHelper.GetDataTable(groupchild);
                foreach (DataRow item2 in dtchild.Rows)
                {
                    var list  = new List <OThinker.Organization.GroupChild>();
                    var staff = new OThinker.Organization.GroupChild
                    {
                        ObjectID       = item2["ObjectID"].ToString(),
                        ChildID        = item2["ChildID"].ToString(),
                        ParentObjectID = item2["ParentObjectID"].ToString()
                    };
                    list.Add(staff);
                    group.ChildList = list.ToArray();
                }

                OThinker.H3.Controllers.AppUtility.Engine.Organization.AddUnit("", group);
            }
        }