public Hashtable GetUserTables() { if (metadataCache.ContainsKey(this.htkey + "Tables")) { return((Hashtable)metadataCache[this.htkey + "Tables"]); } Connection connection = new ConnectionClass(); connection.Open(this.connectionString, null, null, 0); if ((this.defaultDatabase != null) && (this.defaultDatabase != "")) { connection.DefaultDatabase = this.defaultDatabase; } Recordset recordset = connection.OpenSchema(SchemaEnum.adSchemaTables, Missing.Value, Missing.Value); if (!recordset.BOF) { recordset.Filter = "TABLE_TYPE='TABLE'"; } Hashtable hashtable = new Hashtable(); while (!recordset.EOF) { object obj2 = recordset.Fields["TABLE_SCHEMA"].Value; string str = recordset.Fields["TABLE_NAME"].Value.ToString(); if (!(((obj2 == null) || !(obj2.ToString().Trim() != "")) || obj2.ToString().ToLower().Equals("dbo"))) { str = obj2.ToString() + "." + str; } DataTableMetadata metadata = new DataTableMetadata(str); if (obj2 != null) { metadata.Schema = obj2.ToString(); } hashtable[metadata.Name.ToUpper()] = metadata; recordset.MoveNext(); } metadataCache[this.htkey + "Tables"] = hashtable; recordset.Close(); connection.Close(); return(hashtable); }
public Hashtable GetUserViews() { if (metadataCache.ContainsKey(this.htkey + "Views")) { return((Hashtable)metadataCache[this.htkey + "Views"]); } Connection target = new ConnectionClass(); target.Open(this.connectionString, null, null, 0); if ((this.defaultDatabase != null) && (this.defaultDatabase != "")) { target.DefaultDatabase = this.defaultDatabase; } Recordset recordset = (Recordset)target.GetType().InvokeMember("OpenSchema", BindingFlags.InvokeMethod, null, target, new object[] { SchemaEnum.adSchemaTables }); if (!recordset.BOF) { recordset.Filter = "TABLE_TYPE='VIEW'"; } Hashtable hashtable = new Hashtable(); while (!recordset.EOF) { object obj2 = recordset.Fields["TABLE_SCHEMA"].Value; string str = recordset.Fields["TABLE_NAME"].Value.ToString(); if ((obj2 != null) && (obj2.ToString().Trim() != "")) { str = obj2.ToString() + "." + str; } DataTableMetadata metadata = new DataTableMetadata(str, TableType.View); hashtable[metadata.Name.ToUpper()] = metadata; recordset.MoveNext(); } metadataCache[this.htkey + "Views"] = hashtable; recordset.Close(); target.Close(); return(hashtable); }