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);
         }
     }
 }
Esempio n. 2
0
        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);
                }
            }
        }