Example #1
0
        public static IList <string> TableList([NotNull] IBuilderDatabase builderDatabase)
        {
            var tables = new List <string>();

            try
            {
                using (var connection = builderDatabase.GetConnection())
                {
                    try
                    {
                        connection.Open();

                        // Get list of user tables
                        var userTables = connection.GetSchema("Tables");
                        if (userTables != null)
                        {
                            foreach (DataRow row in userTables.Rows)
                            {
                                if (row["TABLE_Type"].ToString() == "TABLE")
                                {
                                    tables.Add(row["TABLE_NAME"].ToString());
                                }
                            }
                        }
                    }
                    finally
                    {
                        connection.Close();
                    }
                }
            }
            catch (Exception ex)
            {
                ErrorHandler(ex, nameof(mdUtility), nameof(TableList));
            }

            return(tables);
        }
Example #2
0
        public static void DeleteAllLinkedTables([NotNull] IBuilderDatabase builderDatabase)
        {
            try
            {
#if false
                var displayTypes = new List <string>
                {
                    //"MetaDataCollections",
                    //"DataSourceInformation",
                    //"DataTypes",
                    //"Restrictions",
                    //"ReservedWords",
                    //"Columns",
                    //"Indexes",
                    //"Procedures",
                    //"ProcedureColumns",
                    //"ProcedureParameters",
                    "Tables",
                    //"Views",
                };

                var tableNames = new List <string>();

                using (var connection = builderDatabase.GetConnection())
                {
                    try
                    {
                        connection.Open();

                        // Get list of schemas
                        var schemas = connection.GetSchema();
                        if (schemas != null)
                        {
                            for (var idx = 0; idx < schemas.Columns.Count; idx++)
                            {
                                Debug.WriteIf(idx > 0, ", ");
                                Debug.Write(schemas.Columns[idx].ColumnName);
                            }
                            Debug.WriteLine("");

                            foreach (DataRow row in schemas.Rows)
                            {
                                for (var idx = 0; idx < schemas.Columns.Count; idx++)
                                {
                                    Debug.WriteIf(idx > 0, ", ");
                                    Debug.Write(row[idx]);
                                }
                                Debug.WriteLine("");
                            }

                            foreach (DataRow schema in schemas.Rows)
                            {
                                if (!displayTypes.Contains(schema[0].ToString()))
                                {
                                    continue;
                                }

                                Debug.WriteLine("\r\nSchema:" + schema[0]);

                                var rows = connection.GetSchema(schema[0].ToString());
                                if (rows != null)
                                {
                                    for (var idx = 0; idx < rows.Columns.Count; idx++)
                                    {
                                        Debug.WriteIf(idx > 0, ", ");
                                        Debug.Write(rows.Columns[idx].ColumnName);
                                    }
                                    Debug.WriteLine("");

                                    foreach (DataRow row in rows.Rows)
                                    {
                                        for (var idx = 0; idx < rows.Columns.Count; idx++)
                                        {
                                            Debug.WriteIf(idx > 0, ", ");
                                            Debug.Write(row[idx]);
                                        }
                                        Debug.WriteLine("");

                                        tableNames.Add(row["TABLE_NAME"].ToString());
                                    }
                                }
                            }
                        }
                    }
                    finally
                    {
                        connection.Close();
                    }
                }
#endif
#if false
                foreach (var tableName in tableNames)
                {
                    try
                    {
                        Debug.WriteLine("\r\nTable:" + tableName);

                        var sysTables = builderDatabase.GetTableFromQuery("SELECT * FROM " + tableName);
                        for (var idx = 0; idx < sysTables.Columns.Count; idx++)
                        {
                            Debug.WriteIf(idx > 0, ", ");
                            Debug.Write(sysTables.Columns[idx].ColumnName);
                        }

                        Debug.WriteLine("");

                        foreach (DataRow row in sysTables.Rows)
                        {
                            for (var idx = 0; idx < sysTables.Columns.Count; idx++)
                            {
                                Debug.WriteIf(idx > 0, ", ");
                                Debug.Write(row[idx]);
                            }

                            Debug.WriteLine("");
                        }
                    }
                    catch (Exception ex)
                    {
                        ErrorHandler(ex, nameof(mdUtility), nameof(DeleteAllLinkedTables));
                    }
                }
#endif
#if false
                using (var connection = builderDatabase.GetConnection())
                {
                    try
                    {
                        connection.Open();
                        var schema = connection.GetSchema(OdbcMetaDataCollectionNames.Tables);

                        for (var idx = 0; idx < schema.Columns.Count; idx++)
                        {
                            Debug.WriteIf(idx > 0, ", ");
                            Debug.Write(schema.Columns[idx].ColumnName);
                        }

                        Debug.WriteLine("");

                        foreach (DataRow row in schema.Rows)
                        {
                            for (var idx = 0; idx < schema.Columns.Count; idx++)
                            {
                                Debug.WriteIf(idx > 0, ", ");
                                Debug.Write(row[idx]);
                            }

                            Debug.WriteLine("");
                        }
                    }
                    finally
                    {
                        connection.Close();
                    }
                }
#endif
#if false
                using (var connection = builderDatabase.GetConnection())
                {
                    try
                    {
                        connection.Open();

                        var command = new OdbcCommand("SHOW TABLES", connection);
                        var reader  = command.ExecuteReader();

                        while (reader.Read())
                        {
                            Debug.WriteLine(reader[0]);
                        }
                    }
                    finally
                    {
                        connection.Close();
                    }
                }
#endif
#if false
                using (var connection = builderDatabase.GetConnection())
                {
                    try
                    {
                        var strCommand = "SELECT DISTINCTROW msysobjects.Name, msysobjects.Database, msysobjects.Connect " +
                                         "FROM msysobjects WHERE (((msysobjects.Type)=6 Or (msysobjects.Type) Like \"dsn*\")) ORDER BY msysobjects.Database;";
                        connection.Open();

                        var command = new OdbcCommand(strCommand, connection);
                        var reader  = command.ExecuteReader();

                        while (reader.Read())
                        {
                            Debug.WriteLine(reader[0]);
                        }
                    }
                    finally
                    {
                        connection.Close();
                    }
                }
#endif
            }
            catch (Exception ex)
            {
                ErrorHandler(ex, nameof(mdUtility), nameof(DeleteAllLinkedTables));
            }
        }