Example #1
0
        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);
        }
Example #2
0
        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();
                        }
                    }
                }
            }
        }
Example #3
0
 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;
                 }
             }
         }
     }
 }
Example #4
0
        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);
        }
Example #5
0
        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);
        }