示例#1
0
        /// <summary>
        /// Gets the properties of the database.
        /// These properties include database status, owner, create date, file properties, and more.
        /// </summary>
        /// <returns>
        /// The properties of the database.
        /// </returns>
        public SqlDatabaseProperties GetDatabaseProperties()
        {
            string databaseStatus;

            switch (dmoDatabase.GetStatus())
            {
            case NativeMethods.SQLDMO_DBSTATUS_TYPE.SQLDMODBStat_EmergencyMode:
                databaseStatus = SR.GetString("SqlDatabase_Status_EmergencyMode");
                break;

            case NativeMethods.SQLDMO_DBSTATUS_TYPE.SQLDMODBStat_Inaccessible:
                databaseStatus = SR.GetString("SqlDatabase_Status_Inaccessible");
                break;

            case NativeMethods.SQLDMO_DBSTATUS_TYPE.SQLDMODBStat_Loading:
                databaseStatus = SR.GetString("SqlDatabase_Status_Loading");
                break;

            case NativeMethods.SQLDMO_DBSTATUS_TYPE.SQLDMODBStat_Normal:
                databaseStatus = SR.GetString("SqlDatabase_Status_Normal");
                break;

            case NativeMethods.SQLDMO_DBSTATUS_TYPE.SQLDMODBStat_Offline:
                databaseStatus = SR.GetString("SqlDatabase_Status_Offline");
                break;

            case NativeMethods.SQLDMO_DBSTATUS_TYPE.SQLDMODBStat_Recovering:
                databaseStatus = SR.GetString("SqlDatabase_Status_Recovering");
                break;

            case NativeMethods.SQLDMO_DBSTATUS_TYPE.SQLDMODBStat_Standby:
                databaseStatus = SR.GetString("SqlDatabase_Status_Standby");
                break;

            case NativeMethods.SQLDMO_DBSTATUS_TYPE.SQLDMODBStat_Suspect:
                databaseStatus = SR.GetString("SqlDatabase_Status_Suspect");
                break;

            default:
                databaseStatus = SR.GetString("SqlDatabase_Status_Unknown");
                break;
            }


            NativeMethods.IDBFile  dataFile = dmoDatabase.GetFileGroups().Item(1).GetDBFiles().Item(1);
            NativeMethods.ILogFile logFile  = dmoDatabase.GetTransactionLog().GetLogFiles().Item(1);

            SqlFileProperties dataFileProps = new SqlFileProperties((dataFile.GetFileGrowthType() == NativeMethods.SQLDMO_GROWTH_TYPE.SQLDMOGrowth_MB) ? SqlFileGrowthType.MB : SqlFileGrowthType.Percent, dataFile.GetFileGrowth(), dataFile.GetMaximumSize());
            SqlFileProperties logFileProps  = new SqlFileProperties((logFile.GetFileGrowthType() == NativeMethods.SQLDMO_GROWTH_TYPE.SQLDMOGrowth_MB) ? SqlFileGrowthType.MB : SqlFileGrowthType.Percent, logFile.GetFileGrowth(), logFile.GetMaximumSize());

            SqlDatabaseProperties props = new SqlDatabaseProperties(dmoDatabase.GetName(), databaseStatus, dmoDatabase.GetOwner(), DateTime.Parse(dmoDatabase.GetCreateDate()), dmoDatabase.GetSize(), dmoDatabase.GetSpaceAvailable() / 1024F, dmoDatabase.GetUsers().GetCount(), dataFileProps, logFileProps);

            return(props);
        }
示例#2
0
 internal SqlDatabaseProperties(string name, string status, string owner, DateTime dateCreated, float size, float spaceAvailable, int numberOfUsers, SqlFileProperties dataFile, SqlFileProperties logFile)
 {
     this.name           = name;
     this.status         = status;
     this.owner          = owner;
     this.dateCreated    = dateCreated;
     this.size           = size;
     this.spaceAvailable = spaceAvailable;
     this.numberOfUsers  = numberOfUsers;
     this.dataFile       = dataFile;
     this.logFile        = logFile;
 }
示例#3
0
 /// <summary>
 /// Initializes a new instance of the SqlDatabaseProperties class.
 /// </summary>
 /// <param name="dataFile">
 /// A SqlFileProperties object representing the data file for this database.
 /// </param>
 /// <param name="logFile">
 /// A SqlFileProperties object representing the transaction log file for this database.
 /// </param>
 public SqlDatabaseProperties(SqlFileProperties dataFile, SqlFileProperties logFile)
 {
     this.dataFile = dataFile;
     this.logFile  = logFile;
 }