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)); } } }
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(); } } }