示例#1
0
        private void DesignTable(int itemId, string tableName)
        {
            Microsoft.VisualStudio.OLE.Interop.IServiceProvider provider = DataViewHierarchyAccessor.ServiceProvider as Microsoft.VisualStudio.OLE.Interop.IServiceProvider;
            IVsUIShell     shell = DataViewHierarchyAccessor.ServiceProvider.GetService(typeof(IVsUIShell)) as IVsUIShell;
            IVsUIHierarchy hier  = DataViewHierarchyAccessor.Hierarchy;
            IVsWindowFrame frame;

            if (shell != null)
            {
                TableDesignerDoc form    = new TableDesignerDoc(itemId, DataViewHierarchyAccessor, tableName);
                IntPtr           formptr = System.Runtime.InteropServices.Marshal.GetIUnknownForObject(form);
                Guid             empty   = Guid.Empty;
                FakeHierarchy    fake    = new FakeHierarchy(form, hier);

                int code = shell.CreateDocumentWindow(
                    0, // (uint)(__VSCREATEDOCWIN.CDW_fCreateNewWindow | __VSCREATEDOCWIN.CDW_RDTFLAGS_MASK) | (uint)(_VSRDTFLAGS.RDT_CanBuildFromMemory | _VSRDTFLAGS.RDT_NonCreatable | _VSRDTFLAGS.RDT_VirtualDocument | _VSRDTFLAGS.RDT_DontAddToMRU),
                    form.Name, fake, (uint)itemId, formptr, formptr, ref empty, null, ref guidTableDesignContext, provider, "", form.Caption, null, out frame);

                if (frame != null)
                {
                    object ret;
                    int    prop = (int)__VSFPROPID.VSFPROPID_Caption;

                    code = frame.GetProperty(prop, out ret);

                    code = frame.Show();
                }
            }
        }
示例#2
0
        internal Table(string tableName, DbConnection connection, TableDesignerDoc owner)
        {
            _owner      = owner;
            _oldname    = tableName;
            _connection = connection;
            _name       = tableName;
            _owner.Name = _name;
            _catalog    = _connection.Database; // main

            ReloadDefinition();

            if (_key == null)
            {
                _key = new PrimaryKey(_connection, this, null);
            }

            if (_exists)
            {
                using (DataTable tbl = connection.GetSchema("ForeignKeys", new string[] { Catalog, null, Name }))
                {
                    foreach (DataRow row in tbl.Rows)
                    {
                        _fkeys.Add(new ForeignKey(connection, this, row));
                        _oldfkeys.Add(new ForeignKey(connection, this, row));
                    }
                }
            }

            using (DataTable tbl = connection.GetSchema("Columns", new string[] { Catalog, null, Name }))
            {
                foreach (DataRow row in tbl.Rows)
                {
                    _columns.Add(new Column(row, this));
                }
            }
        }