Exemplo n.º 1
0
        public void ExecuteSql()
        {
            try
            {
                SODatabase db      = base.MainForm.GetCurrentDatabase();
                string     cmdText = textEditorControl1.Text;

                if (this.CurrentDatabase != db)
                {
                    this.CurrentDatabase = db;
                }

                DataSet ds = DbSchemaHelper.Instance.CurrentSchema.ExecuteQuery(CurrentDatabase, cmdText);

                if (ds != null && ds.Tables.Count > 0)
                {
                    dataGridView1.DataSource = ds.Tables[0].DefaultView;
                    richTextBox1.Text        = string.Format("({0} 行受影响)", ds.Tables[0].Rows.Count);
                    tabControl1.SelectedTab  = tabPage1;
                }
                else
                {
                    richTextBox1.Text        = "已成功执行查询";
                    dataGridView1.DataSource = null;
                    tabControl1.SelectedTab  = tabPage2;
                }
            }
            catch (Exception ex)
            {
                tabControl1.SelectedTab = tabPage2;
                richTextBox1.Text       = ex.ToString();
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// 获取表列表
        /// </summary>
        /// <param name="db"></param>
        /// <returns></returns>
        public override List <SOTable> GetTableList(SODatabase db)
        {
            string cmdText = string.Format("use [{0}];exec sp_tables;", db.Name);
            SortedDictionary <string, SOTable> dic = new SortedDictionary <string, SOTable>();
            DataTable dt = this.DbProvider.ExecuteDataSet(System.Data.CommandType.Text, cmdText).Tables[0];

            foreach (DataRow row in dt.Rows)
            {
                if (row["TABLE_TYPE"].ToString() != "TABLE")
                {
                    continue;
                }
                if (row["TABLE_OWNER"].ToString() == "sys")
                {
                    continue;
                }
                SOTable table = new SOTable {
                    Parent = db, Name = row["TABLE_NAME"].ToString(), Owner = row["TABLE_OWNER"].ToString()
                };
                table.SchemaName = table.Owner;
                table.Comment    = GetTableComment(table);
                dic.Add(table.Name, table);
            }

            return(dic.Values.ToList <SOTable>());
        }
Exemplo n.º 3
0
        public static SODatabase ToSODatabase(PDPackage package)
        {
            if (package == null)
            {
                return(null);
            }

            SODatabase db = new SODatabase();

            db.Name      = package.Code;
            db.Comment   = string.IsNullOrEmpty(package.Comment) ? package.Name : package.Comment;
            db.TableList = new List <SOTable>();
            foreach (PDTable item in package.TableList)
            {
                db.TableList.Add(ToSOTable(item));
            }
            db.ViewList = new List <SOView>();
            //foreach (PDView item in package.ViewList)
            //{
            //    db.ViewList.Add(ToSOView(item));
            //}
            db.CommandList = new List <SOCommand>();
            //foreach (PDProcedure item in package.ProcedureList)
            //{
            //    db.CommandList.Add(ToSOCommand(item));
            //}

            return(db);
        }
Exemplo n.º 4
0
        public static SODatabase ToSODatabase(PDModel model)
        {
            if (model == null)
            {
                return(null);
            }

            SODatabase db = new SODatabase();

            db.Name      = model.Code;
            db.Comment   = string.IsNullOrEmpty(model.Comment) ? model.Name : model.Comment;
            db.TableList = new List <SOTable>();
            foreach (PDTable item in model.AllTableList)
            {
                db.TableList.Add(ToSOTable(item));
            }
            db.ViewList = new List <SOView>();
            //foreach (PDView item in model.AllViewList)
            //{
            //    db.ViewList.Add(ToSOView(item));
            //}
            db.CommandList = new List <SOCommand>();
            //foreach (PDProcedure item in model.AllProcedureList)
            //{
            //    db.CommandList.Add(ToSOCommand(item));
            //}

            return(db);
        }
Exemplo n.º 5
0
        /// <summary>
        /// 获取表列表
        /// </summary>
        /// <param name="db"></param>
        /// <returns></returns>
        public override List <SOTable> GetTableList(SODatabase db)
        {
            string cmdText = string.Format(@"select t.OWNER,t.TABLE_NAME,t.NUM_ROWS,c.TABLE_TYPE,c.COMMENTS 
                from dba_tables t left join dba_tab_comments c on t.TABLE_NAME = c.TABLE_NAME where t.owner='{0}'", db.Name);
            SortedDictionary <string, SOTable> dic = new SortedDictionary <string, SOTable>();
            DataTable dt = this.DbProvider.ExecuteDataSet(System.Data.CommandType.Text, cmdText).Tables[0];

            foreach (DataRow row in dt.Rows)
            {
                //if (row["TABLE_TYPE"].ToString() != "TABLE") continue;
                if (row["TABLE_NAME"].ToString().StartsWith("BIN$"))
                {
                    continue;
                }

                SOTable table = new SOTable {
                    Parent = db, Name = row["TABLE_NAME"].ToString(), Owner = row["OWNER"].ToString(), Comment = row["COMMENTS"].ToString()
                };
                table.SchemaName = table.Owner;
                if (!dic.ContainsKey(table.Name))
                {
                    dic.Add(table.Name, table);
                }
            }

            return(dic.Values.ToList <SOTable>());
        }
Exemplo n.º 6
0
        /// <summary>
        /// 在指定数据库上执行一个查询,返回一个结果集
        /// </summary>
        /// <param name="db"></param>
        /// <param name="cmdText"></param>
        /// <returns></returns>
        public virtual DataSet ExecuteQuery(SODatabase db, string cmdText)
        {
            this.DbProvider.CurrentDatabaseName = db.Name.Contains("[") ? db.Name.Replace("[", "").Replace("]", "") : db.Name;
            DataSet ds = this.DbProvider.ExecuteDataSet(CommandType.Text, cmdText);

            return(ds);
        }
Exemplo n.º 7
0
        public override List <SODatabase> GetDatabaseList()
        {
            List <SODatabase> list = new List <SODatabase>();

            string cmdText = "select * from dba_users";

            if (!IsDBA)
            {
                cmdText = "select * from user_users";
            }
            try
            {
                DataTable dt = this.DbProvider.ExecuteDataSet(System.Data.CommandType.Text, cmdText).Tables[0];
                foreach (DataRow row in dt.Rows)
                {
                    SODatabase db = new SODatabase();
                    db.Name    = row["USERNAME"].ToString();
                    db.Comment = db.Name;
                    db.Parent  = this;

                    list.Add(db);
                }
            }
            catch (Exception)
            {
            }
            return(list);
        }
Exemplo n.º 8
0
        //        /// <summary>
        //        /// 获取表所拥有的索引列表
        //        /// </summary>
        //        /// <param name="table"></param>
        //        /// <returns></returns>
        //        public override List<SOIndex> GetTableIndexList(SOTable table)
        //        {
        //            string cmdText = string.Format(@"SELECT *
        //                FROM INFORMATION_SCHEMA.`constraints`
        //                WHERE table_schema='{0}' AND table_name='{1}';", table.Database.Name, table.Name);

        //            List<SOIndex> indexList = new List<SOIndex>();
        //            List<SOColumn> columnList = GetTableColumnList(table);
        //            DataTable dt = this.DbProvider.ExecuteDataSet(System.Data.CommandType.Text, cmdText).Tables[0];

        //            foreach (DataRow row in dt.Rows)
        //            {
        //                SOIndex index = new SOIndex
        //                {
        //                    Parent = table,
        //                    Name = row["constraint_name"].ToString(),
        //                    Comment = row["constraint_name"].ToString(),
        //                    IsCluster = false,
        //                    IsFullText = row["constraint_type"].ToString() == "Full Text",
        //                    IsPrimaryKey = row["constraint_type"].ToString() == "PRIMARY KEY",
        //                    IsUnique = row["constraint_type"].ToString() == "UNIQUE"
        //                };
        //                indexList.Add(index);

        //                string cmdText2 = string.Format(@"SELECT column_name
        //                FROM INFORMATION_SCHEMA.`statistics`
        //                WHERE table_schema='{0}' AND table_name='{1}';", table.Database.Name, table.Name);

        //                DataTable dt2 = this.DbProvider.ExecuteDataSet(CommandType.Text, cmdText2).Tables[0];
        //                index.Columns = new List<SOColumn>();
        //                foreach (DataRow row2 in dt2.Rows)
        //                {
        //                    foreach (SOColumn column in columnList)
        //                    {
        //                        if (row2[0].ToString() == column.Name) index.Columns.Add(column);
        //                    }
        //                }
        //            }

        //            return indexList;
        //        }

        /// <summary>
        /// 获取视图列表
        /// </summary>
        /// <param name="db"></param>
        /// <returns></returns>
        public override List <SOView> GetViewList(SODatabase db)
        {
            string cmdText = string.Format("use [{0}];exec sp_tables;", db.Name);
            SortedDictionary <string, SOView> dic = new SortedDictionary <string, SOView>();
            DataTable dt = this.DbProvider.ExecuteDataSet(System.Data.CommandType.Text, cmdText).Tables[0];

            foreach (DataRow row in dt.Rows)
            {
                if (row["TABLE_TYPE"].ToString() != "VIEW")
                {
                    continue;
                }
                if (row["TABLE_OWNER"].ToString() == "sys" || row["TABLE_OWNER"].ToString() == "INFORMATION_SCHEMA")
                {
                    continue;
                }
                SOView view = new SOView {
                    Parent = db, Name = row["TABLE_NAME"].ToString(), Owner = row["TABLE_OWNER"].ToString()
                };
                view.SchemaName = view.Owner;
                dic.Add(view.Name, view);
            }

            return(dic.Values.ToList <SOView>());
        }
Exemplo n.º 9
0
        /// <summary>
        /// 在指定数据库上执行一个查询,返回一个结果集
        /// </summary>
        /// <param name="db"></param>
        /// <param name="cmdText"></param>
        /// <returns></returns>
        public virtual DataSet ExecuteQuery(SODatabase db, string cmdText)
        {
            this.DbProvider.CurrentDatabaseName = db.Name;
            DataSet ds = this.DbProvider.ExecuteDataSet(CommandType.Text, cmdText);

            return(ds);
        }
Exemplo n.º 10
0
        /// <summary>
        /// 加载数据表
        /// </summary>
        /// <param name="connectionName"></param>
        private void LoadTable(String connectionName)
        {
            // 加载数据库
            nowConnectionName = connectionName;
            var dal   = new DbConnConfigDAL();
            var model = dal.FindOne(connectionName);

            this.nowDbSchema = DbSchemaFactory.Create(new MySqlDatabase(model.ConnectionString, MySqlClientFactory.Instance));
            try
            {
                nowDb = this.nowDbSchema.GetDatabase(model.DefaultDb);
            }
            catch (Exception e1)
            {
                MsgBox.ShowErrorMessage("数据库打开失败:" + e1.Message);
                return;
            }

            // 加载表
            this.listBox1.Items.Clear();
            this.listBox2.Items.Clear();
            this.unSelectedTableList.Clear();
            this.selectedTableList.Clear();
            foreach (SOTable t in nowDb.TableList)
            {
                listBox1.Items.Add(t);
                unSelectedTableList.Add(t);
            }
        }
Exemplo n.º 11
0
        ////使用实体层模板批量生成代码
        //private void menuItemBatchBuildEnityCode_Click(object sender, EventArgs e)
        //{
        //    SODatabase db = tvDatabase.SelectedNode.Tag as SODatabase;

        //    BatchBuildEntityCode dialog = new BatchBuildEntityCode(db);
        //    dialog.ShowDialog();
        //}

        ////使用数据层模板批量生成代码
        //private void menuItemBatchBuildDALCode_Click(object sender, EventArgs e)
        //{
        //    SODatabase db = tvDatabase.SelectedNode.Tag as SODatabase;

        //    BatchBuildDALCode dialog = new BatchBuildDALCode(db);
        //    dialog.ShowDialog();
        //}

        //批量生成代码
        private void menuItemBatchBuildCode_Click(object sender, EventArgs e)
        {
            SODatabase db = tvDatabase.SelectedNode.Tag as SODatabase;

            BatchBuildCode dialog = new BatchBuildCode(db);

            dialog.Show(this.DockPanel);
        }
Exemplo n.º 12
0
        private string GetDBComment(SODatabase db)
        {
            string cmdText = string.Format(@"use [{0}];
                                SELECT value as 'comment'
                                FROM fn_listextendedproperty(default, default, default, default, default, default, default); ", db.Name);

            return(this.DbProvider.ExecuteScalar <string>(CommandType.Text, cmdText));
        }
Exemplo n.º 13
0
 public void AddDbListItem(SODatabase db)
 {
     try
     {
         toolItemDbList.Items.Add(db);
     }
     catch { }
 }
Exemplo n.º 14
0
        //加载数据库元数据架构信息
        void LoadDbSchema(TreeNode dbNode)
        {
            this.Cursor = Cursors.WaitCursor;
            dbNode.Nodes.Clear();
            SODatabase db        = dbNode.Tag as SODatabase;
            TreeNode   tableNode = new TreeNode("表", 2, 2);
            TreeNode   viewNode  = new TreeNode("视图", 2, 2);
            TreeNode   spNode    = new TreeNode("存储过程", 2, 2);

            //加载表列表
            IList <SOTable> tableList = dbSchema.GetTableList(db);

            foreach (SOTable t in tableList)
            {
                //TreeNode tn = new TreeNode(t.FullName, 3, 3);
                TreeNode tn = new TreeNode(t.Name, 3, 3);
                tn.Tag              = t;
                tn.ToolTipText      = string.IsNullOrEmpty(t.Comment) ? t.Name : t.Comment;
                tn.ContextMenuStrip = cmsTable;
                tableNode.Nodes.Add(tn);
            }

            //加载视图列表
            IList <SOView> viewList = dbSchema.GetViewList(db);

            foreach (SOView v in viewList)
            {
                //TreeNode tn = new TreeNode(v.FullName, 4, 4);
                TreeNode tn = new TreeNode(v.Name, 4, 4);
                tn.Tag              = v;
                tn.ToolTipText      = string.IsNullOrEmpty(v.Comment) ? v.Name : v.Comment;
                tn.ContextMenuStrip = cmsView;
                viewNode.Nodes.Add(tn);
            }

            //加载存储过程列表
            IList <SOCommand> spList = dbSchema.GetCommandList(db);

            if (spList != null && spList.Count > 0)
            {
                foreach (SOCommand p in spList)
                {
                    //TreeNode tn = new TreeNode(p.FullName, 5, 5);
                    TreeNode tn = new TreeNode(p.Name, 5, 5);
                    tn.Tag              = p;
                    tn.ToolTipText      = string.IsNullOrEmpty(p.Comment) ? p.Name : p.Comment;
                    tn.ContextMenuStrip = cmsSp;
                    spNode.Nodes.Add(tn);
                }
            }

            dbNode.Nodes.Add(tableNode);
            dbNode.Nodes.Add(viewNode);
            dbNode.Nodes.Add(spNode);
            this.Cursor = Cursors.Default;
        }
Exemplo n.º 15
0
        //add behabiour of type t to state
        public void AddBehaviour(System.Type t)
        {
            if (!t.IsSubclassOf(typeof(StateBehaviour)))
            {
                return;
            }

            SODatabase.Add(state, (StateBehaviour)CreateInstance(t), state.behaviours);
            fold.Add(true);
        }
Exemplo n.º 16
0
 public void SetCurrentDB(SODatabase db)
 {
     foreach (object item in toolItemDbList.Items)
     {
         if (item.ToString() == db.Name)
         {
             toolItemDbList.SelectedItem = item;
         }
     }
 }
Exemplo n.º 17
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="database">要使用的数据库</param>
 /// <param name="tableList">要使用的表列表</param>
 /// <param name="templateInfoList">要使用的模板列表</param>
 /// <param name="nameRuleConfig">命名规则</param>
 /// <param name="paramList">生成的参数信息</param>
 /// <param name="savePath">保存路径</param>
 /// <param name="typeMapConfigList">类型映射</param>
 public GenerateBase(SODatabase database, List <SOTable> tableList, List <TemplateInfo> templateInfoList,
                     List <TypeMapConfig> typeMapConfigList, NameRuleConfig nameRuleConfig, List <ParamItem> paramList, String savePath)
 {
     this.TableList         = tableList;
     this.Database          = database;
     this.TemplateInfoList  = templateInfoList;
     this.TypeMapConfigList = typeMapConfigList;
     this.NameRuleConfig    = nameRuleConfig;
     this.ParamList         = paramList;
     this.SavePath          = savePath;
 }
        public void Add(System.Type varType)
        {
            if (!varType.IsSubclassOf(typeof(Variable)))
            {
                return;
            }

            Variable v = (Variable)CreateInstance(varType);

            SODatabase.Add(varHandle, v, varHandle.Variables);
            v.name = "Variable";
            fold.Add(true);
        }
Exemplo n.º 19
0
 private void CreateScorerOptions()
 {
     newScorerType = AISEditorUtil.allScorers[EditorGUILayout.Popup("New Scorer Type:", AISEditorUtil.allScorers.IndexOf(newScorerType), AISEditorUtil.allScorers.Select(x => x.Name).ToArray())];
     if (GUILayout.Button("Create new Scorer"))
     {
         AISScorer scorer = CreateInstance(newScorerType) as AISScorer;
         if (scorer != null)
         {
             scorer.name  = "New";
             scorer.owner = this;
             SODatabase.Add(this, scorer, scorers);
         }
     }
 }
        public static VarHandleTemplateEditor GetCreateEditor(VarHandleTemplate vh)
        {
            VarHandleTemplateEditor vhe = SODatabase.GetSubObjectOfType <VarHandleTemplateEditor>(vh);

            if (vhe)
            {
                return(vhe);
            }

            vhe           = CreateInstance <VarHandleTemplateEditor>();
            vhe.varHandle = vh;
            vhe.name      = vh.name + "Editor";
            AssetDatabase.AddObjectToAsset(vhe, vh);

            return(vhe);
        }
Exemplo n.º 21
0
        /// <summary>
        /// 获取表列表
        /// </summary>
        /// <param name="db"></param>
        /// <returns></returns>
        public override List <SOTable> GetTableList(SODatabase db)
        {
            string         cmdText   = string.Format("SELECT table_name,table_type,table_comment FROM INFORMATION_SCHEMA.`TABLES` WHERE table_schema='{0}' AND table_type='BASE TABLE';", db.Name);
            List <SOTable> tableList = new List <SOTable>();
            DataTable      dt        = this.DbProvider.ExecuteDataSet(System.Data.CommandType.Text, cmdText).Tables[0];

            foreach (DataRow row in dt.Rows)
            {
                SOTable table = new SOTable {
                    Parent = db, Name = row["table_name"].ToString(), Comment = row["table_comment"].ToString()
                };
                tableList.Add(table);
            }

            return(tableList);
        }
Exemplo n.º 22
0
        /// <summary>
        /// 生成一个表
        /// </summary>
        /// <param name="dataBaseObj">数据库对象</param>
        /// <param name="templateItem">模板列表</param>
        /// <param name="savedFileName">保存到的文件名</param>
        /// <param name="paramData">参数数据</param>
        private String BuildTable(SODatabase dataBaseObj, TemplateInfo templateItem, out String savedFileName)
        {
            //生成代码文件
            DatabaseHost host = new DatabaseHost(dataBaseObj, this.NameRuleConfig, this.TypeMapConfigList);

            host.TemplateFile = templateItem.FilePath;

            // 额外参数追加
            if (this.ParamList != null && this.ParamList.Count > 0)
            {
                foreach (var item in this.ParamList)
                {
                    host.SetValue(item.ParamName, item.ParamValue);
                }
            }

            Engine engine          = new Engine();
            string templateContent = File.ReadAllText(templateItem.FilePath);
            var    outputContent   = engine.ProcessTemplate(templateContent, host);

            savedFileName = Path.Combine(this.SavePath, string.Format("{0}{1}", templateItem.TemplateName, host.FileExtention));
            if (String.IsNullOrWhiteSpace(host.OutputFileName) == false)
            {
                savedFileName = Path.Combine(this.SavePath, host.OutputFileName);
            }

            StringBuilder sb = new StringBuilder();

            if (host.ErrorCollection != null && host.ErrorCollection.HasErrors)
            {
                foreach (CompilerError err in host.ErrorCollection)
                {
                    sb.AppendLine(err.ToString());
                }

                return(sb.ToString());
            }

            if (Directory.Exists(this.SavePath) == false)
            {
                Directory.CreateDirectory(this.SavePath);
            }

            File.WriteAllText(savedFileName, outputContent, host.FileEncoding);

            return(String.Empty);
        }
Exemplo n.º 23
0
        /// <summary>
        /// 获取数据库列表
        /// </summary>
        /// <returns></returns>
        public virtual List <SODatabase> GetDatabaseList()
        {
            List <SODatabase> list = new List <SODatabase>();
            DataTable         dt   = GetSchema(MetaDataCollectionName_Databases);

            foreach (DataRow dr in dt.Rows)
            {
                SODatabase db = new SODatabase();
                db.Name    = dr["database_name"].ToString();
                db.Comment = db.Name;
                db.Parent  = this;

                list.Add(db);
            }

            return(list);
        }
Exemplo n.º 24
0
        /// <summary>
        /// 获取存储过程列表
        /// </summary>
        /// <param name="db"></param>
        /// <returns></returns>
        public override List <SOCommand> GetCommandList(SODatabase db)
        {
            string cmdText = string.Format(@"select PROCEDURE_NAME from dba_procedures where owner='{0}'", db.Name);

            List <SOCommand> commandList = new List <SOCommand>();
            DataTable        dt          = this.DbProvider.ExecuteDataSet(System.Data.CommandType.Text, cmdText).Tables[0];

            foreach (DataRow row in dt.Rows)
            {
                SOCommand command = new SOCommand {
                    Parent = db, Name = row["PROCEDURE_NAME"].ToString(), Comment = row["PROCEDURE_NAME"].ToString()
                };
                commandList.Add(command);
            }

            return(commandList);
        }
Exemplo n.º 25
0
        /// <summary>
        /// 获取视图列表
        /// </summary>
        /// <param name="db"></param>
        /// <returns></returns>
        public override List <SOView> GetViewList(SODatabase db)
        {
            string cmdText = string.Format("select VIEW_NAME,TEXT from dba_views where owner='{0}'", db.Name);
            SortedDictionary <string, SOView> dic = new SortedDictionary <string, SOView>();
            DataTable dt = this.DbProvider.ExecuteDataSet(System.Data.CommandType.Text, cmdText).Tables[0];

            foreach (DataRow row in dt.Rows)
            {
                SOView view = new SOView {
                    Parent = db, Name = row["VIEW_NAME"].ToString(), SqlText = row["TEXT"].ToString(), Owner = db.Name
                };
                view.SchemaName = view.Owner;
                dic.Add(view.Name, view);
            }

            return(dic.Values.ToList <SOView>());
        }
Exemplo n.º 26
0
        //        /// <summary>
        //        /// 获取视图所拥有的索引列表
        //        /// </summary>
        //        /// <param name="view"></param>
        //        /// <returns></returns>
        //        public override List<SOIndex> GetViewIndexList(SOView view)
        //        {
        //            string cmdText = string.Format(@"SELECT *
        //                FROM INFORMATION_SCHEMA.`constraints`
        //                WHERE table_schema='{0}' AND table_name='{1}';", view.Database.Name, view.Name);

        //            List<SOIndex> indexList = new List<SOIndex>();
        //            List<SOColumn> columnList = GetViewColumnList(view);
        //            DataTable dt = this.DbProvider.ExecuteDataSet(System.Data.CommandType.Text, cmdText).Tables[0];

        //            foreach (DataRow row in dt.Rows)
        //            {
        //                SOIndex index = new SOIndex
        //                {
        //                    Parent = view,
        //                    Name = row["constraint_name"].ToString(),
        //                    Comment = row["constraint_name"].ToString(),
        //                    IsCluster = false,
        //                    IsFullText = row["constraint_type"].ToString() == "Full Text",
        //                    IsPrimaryKey = row["constraint_type"].ToString() == "PRIMARY KEY",
        //                    IsUnique = row["constraint_type"].ToString() == "UNIQUE"
        //                };
        //                indexList.Add(index);

        //                string cmdText2 = string.Format(@"SELECT column_name
        //                FROM INFORMATION_SCHEMA.`statistics`
        //                WHERE table_schema='{0}' AND table_name='{1}';", view.Database.Name, view.Name);

        //                DataTable dt2 = this.DbProvider.ExecuteDataSet(CommandType.Text, cmdText2).Tables[0];
        //                index.Columns = new List<SOColumn>();
        //                foreach (DataRow row2 in dt2.Rows)
        //                {
        //                    foreach (SOColumn column in columnList)
        //                    {
        //                        if (row2[0].ToString() == column.Name) index.Columns.Add(column);
        //                    }
        //                }
        //            }

        //            return indexList;
        //        }

        /// <summary>
        /// 获取存储过程列表
        /// </summary>
        /// <param name="db"></param>
        /// <returns></returns>
        public override List <SOCommand> GetCommandList(SODatabase db)
        {
            string cmdText = string.Format(@"use [{0}];SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_catalog='{0}' AND routine_type='PROCEDURE';", db.Name);

            List <SOCommand> commandList = new List <SOCommand>();
            DataTable        dt          = this.DbProvider.ExecuteDataSet(System.Data.CommandType.Text, cmdText).Tables[0];

            foreach (DataRow row in dt.Rows)
            {
                SOCommand command = new SOCommand {
                    Parent = db, Name = row["routine_name"].ToString(), Comment = row["routine_name"].ToString()
                };
                commandList.Add(command);
            }

            return(commandList);
        }
Exemplo n.º 27
0
        private void CreateChildOptions()
        {
            GUILayout.BeginHorizontal();
            newChildType = AISEditorUtil.allActions[EditorGUILayout.Popup("New Child Type:", AISEditorUtil.allActions.IndexOf(newChildType), AISEditorUtil.allActions.Select(x => x.Name).ToArray())];

            if (GUILayout.Button("Create new child"))
            {
                AISAction child = CreateInstance(newChildType) as AISAction;
                if (child != null)
                {
                    child.name   = "New";
                    child.order  = order + 1;
                    child.parent = this;
                    child.ai     = ai;
                    SODatabase.Add(this, child, children);
                }
            }
            GUILayout.EndHorizontal();
        }
Exemplo n.º 28
0
        void OnGUI()
        {
            GUILayout.BeginVertical();
            item = EditorGUILayout.ObjectField("Item: ", item, typeof(Item), false) as Item;

            if (item)
            {
                item.OnGui();
                GUILayout.BeginHorizontal();

                newCompType = Item.allComponents[EditorGUILayout.Popup(Item.allComponents.IndexOf(newCompType), Item.allComponents.ToArray())];
                if (GUILayout.Button("Create component"))
                {
                    ItemComponent c = CreateInstance(newCompType) as ItemComponent;
                    if (c)
                    {
                        c.item = item;
                        c.name = "New " + c.GetType().ToString();
                        SODatabase.Add(item, c, item.components);
                    }
                }

                GUILayout.EndHorizontal();

                if (GUILayout.Button("Save"))
                {
                    EditorUtility.SetDirty(item);
                    foreach (ItemComponent c in item.components)
                    {
                        EditorUtility.SetDirty(c);
                    }
                }
            }
            else
            {
                EditorGUILayout.LabelField("Choose an Item");

                item = Selection.activeObject as Item;
            }

            GUILayout.EndVertical();
        }
Exemplo n.º 29
0
        private void tvDatabase_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            TreeView tv = sender as TreeView;
            TreeNode tn = tv.GetNodeAt(e.X, e.Y);

            if (tn != null && tn.Level == 1 && tn.Nodes.Count == 0)
            {
                LoadDbSchema(tn);
                tn.Expand();
            }
            if (tn != null && tn.Parent != null && tn.Level == 3)
            {
                if (tn.Parent.Text == "表")
                {
                    if (this.DockPanel.ActiveDocument is CodeBuilder)
                    {
                        SOTable t = tvDatabase.SelectedNode.Tag as SOTable;
                        if (t == null)
                        {
                            return;
                        }

                        CodeBuilder builder = this.DockPanel.ActiveDocument as CodeBuilder;
                        builder.Table      = t;
                        builder.ColumnList = dbSchema.GetTableColumnList(t);
                        builder.LoadColumnList();
                    }
                }
            }

            if (tn != null && tn.Parent != null && tn.Level == 1 && (tvDatabase.SelectedNode.Tag is SODatabase))
            {
                SODatabase  _db     = (SODatabase)tvDatabase.SelectedNode.Tag;
                CodeBuilder builder = this.DockPanel.ActiveDocument as CodeBuilder;
                if (builder == null)
                {
                    builder = new CodeBuilder();
                    builder.Show(this.DockPanel);
                }
                builder.DataBase = _db;
            }
        }
Exemplo n.º 30
0
        private void NewQuery(SODatabase db, string sqlText)
        {
            QueryAnalyzer qa = new QueryAnalyzer();

            qa.CurrentDatabase = db;
            base.MainForm.SetCurrentDB(db);

            int    count    = 1;
            string fileName = string.Format("SqlQuery{0}.sql", count.ToString());

            while (base.MainForm.FindDockDocument(fileName) != null)
            {
                count++;
                fileName = string.Format("SqlQuery{0}.sql", count.ToString());
            }

            qa.FileName = fileName;
            qa.SqlText  = sqlText;
            qa.Show(DockPanel);
        }