public override SchemaInfo GetSchemaFromDatabase(ISchemaImporterOptions options)
        {
            _options = options;
            using (SqlConnection conn = new SqlConnection(options.ConnectionString))
            {
                SqlDataAdapter dataAdapter;

                conn.Open();
                Console.WriteLine("Loading tables...");
                dataAdapter = new SqlDataAdapter(SqlStrings.TablesQuery, conn);
                dataAdapter.Fill(dataSet, "Tables");

                Console.WriteLine("Loading datatypes...");
                dataAdapter.SelectCommand.CommandText = "exec sp_datatype_info";
                dataAdapter.Fill(dataSet, "DataTypes");

                Console.WriteLine("Loading columns...");
                dataAdapter.SelectCommand.CommandText = "exec sp_Columns @table_name='%'";
                dataAdapter.Fill(dataSet, "Columns");

                Console.WriteLine("Loading primary keys...");
                dataAdapter.SelectCommand.CommandText = SqlStrings.PrimaryKeysQuery;
                dataAdapter.Fill(dataSet, "PrimaryKeys");

                Console.WriteLine("Loading foreign keys...");
                dataAdapter.SelectCommand.CommandText = SqlStrings.ForeignKeysQuery;
                dataAdapter.Fill(dataSet, "ForeignKeys");
            }

            SchemaInfo si = new SchemaInfo();

            foreach (DataRow dr in dataSet.Tables["Tables"].Rows)
            {
                DumpTable(si, (string)dr["TABLE_OWNER"], (string)dr["TABLE_NAME"]);
            }

            DumpForeignKeys(si);

            if (_haveIdentityColumns)
            {
                Console.WriteLine("WARNING: Identity columns are not supported. Sooda will not use them, but will provide its own pre-generated key.");
            }

            return(si);
        }
        public override SchemaInfo GetSchemaFromDatabase(ISchemaImporterOptions options)
        {
            _options = options;
            using (SqlConnection conn = new SqlConnection(options.ConnectionString))
            {
                SqlDataAdapter dataAdapter;

                conn.Open();
                Console.WriteLine("Loading tables...");
                dataAdapter = new SqlDataAdapter(SqlStrings.TablesQuery, conn);
                dataAdapter.Fill(dataSet, "Tables");

                Console.WriteLine("Loading datatypes...");
                dataAdapter.SelectCommand.CommandText = "exec sp_datatype_info";
                dataAdapter.Fill(dataSet, "DataTypes");

                Console.WriteLine("Loading columns...");
                dataAdapter.SelectCommand.CommandText = "exec sp_Columns @table_name='%'";
                dataAdapter.Fill(dataSet, "Columns");

                Console.WriteLine("Loading primary keys...");
                dataAdapter.SelectCommand.CommandText = SqlStrings.PrimaryKeysQuery;
                dataAdapter.Fill(dataSet, "PrimaryKeys");

                Console.WriteLine("Loading foreign keys...");
                dataAdapter.SelectCommand.CommandText = SqlStrings.ForeignKeysQuery;
                dataAdapter.Fill(dataSet, "ForeignKeys");
            }

            SchemaInfo si = new SchemaInfo();

            foreach (DataRow dr in dataSet.Tables["Tables"].Rows)
            {
                DumpTable(si, (string)dr["TABLE_OWNER"], (string)dr["TABLE_NAME"]);
            }

            DumpForeignKeys(si);

            if (_haveIdentityColumns)
                Console.WriteLine("WARNING: Identity columns are not supported. Sooda will not use them, but will provide its own pre-generated key.");

            return si;
        }
 public abstract SchemaInfo GetSchemaFromDatabase(ISchemaImporterOptions options);
 public abstract SchemaInfo GetSchemaFromDatabase(ISchemaImporterOptions options);