Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }