public DatabaseInfo Get(Database database) { DatabaseInfo item = new DatabaseInfo(); using (SqlConnection conn = new SqlConnection(connectioString)) { using (SqlCommand command = new SqlCommand(DatabaseSQLCommand.GetVersion(database), conn)) { conn.Open(); using (SqlDataReader reader = command.ExecuteReader()) { if (reader.Read()) { item.VersionNumber = float.Parse(reader["Version"].ToString().Replace(".", "")); } } } using (SqlCommand command = new SqlCommand(DatabaseSQLCommand.Get(item.Version, database), conn)) { using (SqlDataReader reader = command.ExecuteReader()) { if (reader.Read()) { item.Collation = reader["Collation"].ToString(); item.HasFullTextEnabled = ((int)reader["IsFulltextEnabled"]) == 1; } } } } return(item); }
public DatabaseInfo(string connectionString, Database database) { Version = VersionNumber.SQLServer2005; this._connectionString = connectionString; this._database = database; //Initialise all the properties of this database using (SqlConnection conn = new SqlConnection(_connectionString)) { conn.Open(); //Set the version number this.Version = DBDiff.Schema.SQLServer.Util.GetVersionNumber(conn); using (SqlCommand command = new SqlCommand(DatabaseSQLCommand.GetDatabaseProperties(this.Version, this._database), conn)) { using (SqlDataReader reader = command.ExecuteReader()) { if (reader.Read()) { this.Collation = reader["Collation"].ToString(); this.HasFullTextEnabled = ((int)reader["IsFulltextEnabled"]) == 1; this.CompatibilityLevel = reader["CompatibilityLevel"].ToString(); } } } } }
private void FillDatabase() { if (!isDatabaseFilled) { String connectionString = ConnectionString; ClearDatabase(); using (SqlConnection conn = new SqlConnection(connectionString)) { conn.Open(); using (SqlCommand command = new SqlCommand(DatabaseSQLCommand.GetDatabases(DBDiff.Schema.SQLServer.Util.GetVersionNumber(conn)), conn)) { using (SqlDataReader reader = command.ExecuteReader()) { while (reader.Read()) { AddComboItem(reader["Name"].ToString()); } isDatabaseFilled = true; } } } } }
public DatabaseInfo Get(Database database) { DatabaseInfo item = new DatabaseInfo(); using (SqlConnection conn = new SqlConnection(connectioString)) { using (SqlCommand command = new SqlCommand(DatabaseSQLCommand.GetVersion(database), conn)) { conn.Open(); item.Server = conn.DataSource; item.Database = conn.Database; using (SqlDataReader reader = command.ExecuteReader()) { if (reader.Read()) { string versionValue = reader["Version"] as string; try { // used to use the decimal as well when Azure was 10.25 var version = new Version(versionValue); item.VersionNumber = float.Parse(String.Format("{0}.{1}", version.Major, version.Minor), System.Globalization.CultureInfo.InvariantCulture); int?edition = null; if (reader.FieldCount > 1 && !reader.IsDBNull(1)) { int validEdition; string editionValue = reader[1].ToString(); if (!String.IsNullOrEmpty(editionValue) && int.TryParse(editionValue, out validEdition)) { edition = validEdition; } } item.SetEdition(edition); } catch (Exception notAGoodIdeaToCatchAllErrors) { bool useDefaultVersion = false; //#if DEBUG // useDefaultVersion = IsKeyPushedDown(System.Windows.Forms.Keys.LShiftKey) // && IsKeyPushedDown(System.Windows.Forms.Keys.RShiftKey); //#endif var exception = new DBDiff.Schema.Misc.SchemaException( String.Format("Error parsing ProductVersion. ({0})", versionValue ?? "[null]") , notAGoodIdeaToCatchAllErrors); if (!useDefaultVersion) { throw exception; } } } } } using (SqlCommand command = new SqlCommand(DatabaseSQLCommand.Get(item.Version, database), conn)) { using (SqlDataReader reader = command.ExecuteReader()) { if (reader.Read()) { item.Collation = reader["Collation"].ToString(); item.HasFullTextEnabled = ((int)reader["IsFulltextEnabled"]) == 1; } } } } return(item); }
public DatabaseInfo Get(Database database) { DatabaseInfo item = new DatabaseInfo(); using (SqlConnection conn = new SqlConnection(connectioString)) { using (SqlCommand command = new SqlCommand(DatabaseSQLCommand.GetVersion(database), conn)) { conn.Open(); item.Server = conn.DataSource; item.Database = conn.Database; using (SqlDataReader reader = command.ExecuteReader()) { if (reader.Read()) { string versionValue = reader["Version"] as string; try { // used to use the decimal as well when Azure was 10.25 var version = new Version(versionValue); item.VersionNumber = float.Parse(String.Format("{0}.{1}", version.Major, version.Minor), CultureInfo.InvariantCulture); if (reader.FieldCount > 1 && !reader.IsDBNull(1)) { int edition; if (int.TryParse(reader[1].ToString(), out edition) && Enum.IsDefined(typeof(DatabaseInfo.SQLServerEdition), edition)) { item.SetEdition((DatabaseInfo.SQLServerEdition)edition); } } } catch (Exception notAGoodIdeaToCatchAllErrors) { var exception = new SchemaException( String.Format("Error parsing ProductVersion. ({0})", versionValue ?? "[null]") , notAGoodIdeaToCatchAllErrors); if (!UseDefaultVersionOnVersionParseError) { throw exception; } } } } } using (SqlCommand command = new SqlCommand(DatabaseSQLCommand.Get(item.Version, item.Edition, database), conn)) { using (SqlDataReader reader = command.ExecuteReader()) { if (reader.Read()) { item.Collation = reader["Collation"].ToString(); item.HasFullTextEnabled = ((int)reader["IsFulltextEnabled"]) == 1; } } } } return(item); }