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