public override List <DatabaseOverviewInfo> GetDatabaseList(bool includeDetails, LinkedDatabaseInfo linkedInfo = null) { using (var cmd = Connection.CreateCommand()) { cmd.CommandText = "SELECT datname FROM pg_database WHERE datistemplate = false"; using (var reader = cmd.ExecuteReader()) { var res = new List <DatabaseOverviewInfo>(); while (reader.Read()) { var item = new DatabaseOverviewInfo(); item.Name = reader["datname"].SafeToString(); res.Add(item); } return(res); } } }
public override List <DatabaseOverviewInfo> GetDatabaseList(bool includeDetails, LinkedDatabaseInfo linkedInfo = null) { if (includeDetails) { try { using (var cmd = Connection.CreateCommand()) { cmd.CommandText = SqlServerLinkedServer.ReplaceLinkedServer(SqlServerDatabaseFactory.LoadEmbeddedResource("databasesizes.sql"), linkedInfo); using (var reader = cmd.ExecuteReader()) { var res = new List <DatabaseOverviewInfo>(); while (reader.Read()) { var item = new DatabaseOverviewInfo(); item.Name = reader["DatabaseName"].SafeToString(); item.RowSizeKB = long.Parse(reader["RowSizeKB"].SafeToString()); item.LogSizeKB = long.Parse(reader["LogSizeKB"].SafeToString()); item.Collation = reader["Collation"].SafeToString(); item.RecoveryModel = reader["RecoveryModel"].SafeToString(); bool isSnapshot = reader["SnapshotIsolation"].SafeToString() == "1"; bool isReadCommitedSnapshot = reader["IsReadCommitedSnapshot"].SafeToString()?.ToLower() == "true"; if (isSnapshot) { if (isReadCommitedSnapshot) { item.Concurrency = "High"; } else { item.Concurrency = "Middle"; } } else { item.Concurrency = "Low"; } res.Add(item); } return(res); } } } catch (Exception err) { // use variant without details ServiceProvider.LogError <SqlServerInterface>(err, "Error fetching database details"); } } using (var cmd = Connection.CreateCommand()) { cmd.CommandText = SqlServerLinkedServer.ReplaceLinkedServer("SELECT name FROM [SERVER].sys.databases order by name", linkedInfo); using (var reader = cmd.ExecuteReader()) { var res = new List <DatabaseOverviewInfo>(); while (reader.Read()) { var item = new DatabaseOverviewInfo(); item.Name = reader["name"].SafeToString(); res.Add(item); } return(res); } } }