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);