示例#1
0
        public void DoEdit(AlterTableEditorPars.Tab initialTab)
        {
            string winid = TableKey + "#edit_table";

            if (MainWindow.Instance.HasContent(winid))
            {
                var sett = TableSource.Database.Settings.Tree();
                if (sett.DesignTableDuplicateMode.ShouldReuse())
                {
                    MainWindow.Instance.ActivateContent(winid);
                    return;
                }
            }

            var pars = new AlterTableEditorPars {
                InitialTab = initialTab
            };
            var ts = new TableStructure {
                FullName = TableSource.FullName
            };
            var content = new TableEditFrame(TableSource.Database.CloneSource(), ts, pars);

            content.WinId = winid;
            MainWindow.Instance.OpenContent(content);
        }
示例#2
0
        public static bool Run(IDatabaseSource conn, TableStructure table, AlterTableEditorPars pars)
        {
            var win = new TableEditForm();

            win.tableEditFrame1.Init(conn, table, pars);
            win.tableEditFrame1.ShowAlteredInfoDialog = false;
            return(win.ShowDialog() == DialogResult.OK);
        }
示例#3
0
        public void NewTable()
        {
            var pars = new AlterTableEditorPars {
                SavedCallback = this.CompleteRefresh
            };

            MainWindow.Instance.OpenContent(new TableEditFrame(m_conn.CloneSource(), null, pars));
        }
示例#4
0
        public override void CreateNew(AppObject appobj, ConnectionPack connpack)
        {
            var tp = _Type;

            if (tp.ObjectType == "table")
            {
                var pars = new AlterTableEditorPars {
                    SavedCallback = RefreshList
                };
                MainWindow.Instance.OpenContent(new TableEditFrame(appobj.CreateDatabaseConnection(), null, pars));
            }
            else
            {
                var dbconn = appobj.FindDatabaseConnection(connpack);
                var dbtype = dbconn.Dialect.GetSpecificObjectType(tp.ObjectType);
                if (dbconn.DatabaseCaps.ExecuteSql)
                {
                    OpenQueryParameters pars    = new OpenQueryParameters();
                    IPhysicalConnection newconn = dbconn.Connection.Clone();
                    string dbname = appobj.FindDatabaseName();
                    if (dbname != null)
                    {
                        newconn.AfterOpen += ConnTools.ChangeDatabaseCallback(dbname);
                    }
                    pars.GenerateSql = delegate(IPhysicalConnection conn)
                    {
                        return(dbtype.GenerateCreateNew(conn.SystemConnection, appobj.GetObjectPath()));
                    };
                    pars.HideDesign       = true;
                    pars.ExecutedCallback = RefreshList;
                    MainWindow.Instance.OpenContent(new QueryFrame(newconn, pars));
                }
                else
                {
                    string sql  = dbtype.GenerateCreateNew(dbconn.Connection.SystemConnection, appobj.GetObjectPath());
                    var    pars = new ObjectEditorPars {
                        SavedCallback = RefreshList
                    };
                    var frm = new SpecificObjectFrame(dbconn, tp.ObjectType, sql, pars);
                    MainWindow.Instance.OpenContent(frm);
                }
            }
        }