diff --git a/RombaSharp/Partials/RombaSharp_Helpers.cs b/RombaSharp/Partials/RombaSharp_Helpers.cs index 7489006c..64db4c3a 100644 --- a/RombaSharp/Partials/RombaSharp_Helpers.cs +++ b/RombaSharp/Partials/RombaSharp_Helpers.cs @@ -227,20 +227,52 @@ namespace SabreTools /// /// Display the statistics in the database /// - /// - /// This list of stats should include: - /// - Total uncompressed size of the files - /// - Total number of files - /// - Total number of files that exist - /// - Total number of files that don't exist - /// - Total number of files with CRC - /// - Total number of files with MD5 - /// - Total number of files with SHA-1 - /// - Total number of unique DAT hashes - /// private static void DisplayDBStats() { - _logger.User("This feature is not yet implemented: dbstats"); + SqliteConnection dbc = new SqliteConnection(_connectionString); + + // Total uncompressed size + string query = "SELECT SUM(size) FROM data"; + SqliteCommand slc = new SqliteCommand(query, dbc); + _logger.User("Uncompressed size: " + Style.GetBytesReadable((long)slc.ExecuteScalar())); + + // Total number of files + query = "SELECT COUNT(*) FROM data"; + slc = new SqliteCommand(query, dbc); + _logger.User("Total files: " + (long)slc.ExecuteScalar()); + + // Total number of files that exist + query = "SELECT COUNT(*) FROM data WHERE exists=1"; + slc = new SqliteCommand(query, dbc); + _logger.User("Total files in depots: " + (long)slc.ExecuteScalar()); + + // Total number of files that are missing + query = "SELECT COUNT(*) FROM data WHERE exists=0"; + slc = new SqliteCommand(query, dbc); + _logger.User("Total files missing: " + (long)slc.ExecuteScalar()); + + // Total number of CRCs + query = "SELECT COUNT(crc) FROM data WHERE NOT crc=\"null\""; + slc = new SqliteCommand(query, dbc); + _logger.User("Total CRCs: " + (long)slc.ExecuteScalar()); + + // Total number of MD5s + query = "SELECT COUNT(md5) FROM data WHERE NOT md5=\"null\""; + slc = new SqliteCommand(query, dbc); + _logger.User("Total MD5s: " + (long)slc.ExecuteScalar()); + + // Total number of SHA1s + query = "SELECT COUNT(sha1) FROM data WHERE NOT sha1=\"null\""; + slc = new SqliteCommand(query, dbc); + _logger.User("Total SHA1s: " + (long)slc.ExecuteScalar()); + + // Total number of DATs + query = "SELECT COUNT(*) FROM dats"; + slc = new SqliteCommand(query, dbc); + _logger.User("Total DATs: " + (long)slc.ExecuteScalar()); + + slc.Dispose(); + dbc.Dispose(); } ///