//======================================================================================== // Discover() // If an inheritor allows discoveries (HasDiscovery == true), then the inheritor // should override this method to propulate its Nodes collections. //======================================================================================== public virtual void Discover() { Nodes.Clear(); switch (this.type = type) { case SchemataType.Column: DiscoverColumns(); break; case SchemataType.Function: DiscoverFunctions(); break; case SchemataType.Index: DiscoverIndexes(); break; case SchemataType.Package: DiscoverPackages(); break; case SchemataType.PackageBody: DiscoverPackageBodies(); break; case SchemataType.Procedure: DiscoverProcedures(); break; case SchemataType.Sequence: DiscoverSequences(); break; case SchemataType.SystemTable: DiscoverTables(); break; case SchemataType.UserTable: DiscoverTables(); break; case SchemataType.View: DiscoverViews(); break; } }
protected override void DoDiscoverWork(object sender, DoWorkEventArgs e) { string sql = @"select object_name, object_id, created, last_ddl_time, status from all_objects where owner = '" + schemaName + @"' and object_type = 'TYPE' order by 1"; Logger.WriteLine(sql); using (var cmd = new OracleCommand(sql, dbase.OraConnection)) { try { using (var reader = cmd.ExecuteReader()) { while (reader.Read()) { if (Logger.IsEnabled) { Logger.WriteLine(schemaName + "." + reader.GetString(0)); } var table = new SchemataType( dbase, srvnode, reader.GetString(Colnum.ObjectName)); if (reader.GetString(Colnum.Status) == "INVALID") { table.ForeColor = System.Drawing.Color.Red; } table.AddProperty("Name", reader.GetString(Colnum.ObjectName)); table.AddProperty("Object ID", ((int)reader.GetDecimal(Colnum.ObjectID)).ToString()); table.AddProperty("Created", reader.GetDateTime(Colnum.Created).ToString()); table.AddProperty("Last DDL Time", reader.GetDateTime(Colnum.LastDDLTime).ToString()); table.AddProperty("Status", reader.GetString(Colnum.Status)); discoveries.Add(table); } reader.Close(); } } catch (Exception exc) { River.Orqa.Dialogs.ExceptionDialog.ShowException(exc); } } }
//======================================================================================== // Constructor // Public type constructor. The default base constructor will be called // implicitly, which, in turn, will call our Configure factory method. //======================================================================================== public SchemataFolder(MainForm form, ConnectionInfo cinfo, SchemataType type) { this.Form = form; switch (this.type = type) { case SchemataType.Column: Text = "Columns"; break; case SchemataType.Function: Text = "Functions"; restrictions = new string[] { null, schemaName, null, null }; break; case SchemataType.Index: Text = "Indexes"; break; case SchemataType.Package: Text = "Packages"; restrictions = new Object[] { null, schemaName, null, null }; break; case SchemataType.PackageBody: Text = "Package Bodies"; restrictions = new Object[] { null, schemaName, null, null }; break; case SchemataType.Procedure: Text = "Procedures"; short ptype = 2; restrictions = new Object[] { null, schemaName, null, ptype }; break; case SchemataType.Sequence: Text = "Sequences"; restrictions = new Object[] { null, schemaName, null, null }; break; case SchemataType.SystemTable: Text = "System Tables"; restrictions = new Object[] { null, schemaName, null, "SYSTEM TABLE" }; break; case SchemataType.UserTable: Text = "User Tables"; restrictions = new Object[] { null, schemaName, null, "TABLE" }; break; case SchemataType.View: Text = "Views"; restrictions = new Object[] { null, schemaName, null }; break; } ImageIndex = 2; SelectedImageIndex = 2; canRefresh = true; hasDiscovery = true; Nodes.Add(new TreeNode()); }