Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / OLAP и DWH Новый топик    Ответить
 SSAS 2016, свойство Server::Databases - коллекция БД на сервере. Вопрос доступ по номеру  [new]
Ruban Igor
Member

Откуда: Киев
Сообщений: 232
Согласно документации:
https://msdn.microsoft.com/en-us/library/microsoft.analysisservices.databasecollection.aspx
Доступ к базам возможен через название базы и через №:

Server.Databases.Item("Instance1") - работает, всё ОК,

Server.Databases.Item(0) - выдает ошибку...

Почему? Документация:
https://msdn.microsoft.com/en-us/library/ms152441(v=sql.110).aspx
Напрямую позволяет обращения по номеру....
В чем ошибка?
10 мар 18, 09:18    [21246744]     Ответить | Цитировать Сообщить модератору
 Re: SSAS 2016, свойство Server::Databases - коллекция БД на сервере. Вопрос доступ по номеру  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 30485
Блог
Вместо троеточия стоило бы написать сообщение об ошибке
10 мар 18, 10:46    [21246774]     Ответить | Цитировать Сообщить модератору
 Re: SSAS 2016, свойство Server::Databases - коллекция БД на сервере. Вопрос доступ по номеру  [new]
Ruban Igor
Member

Откуда: Киев
Сообщений: 232
Критик,

Спасибо за конструктивную критику :)

Microsoft.AnalysisServices: The 'Database' with 'ID' = '0' doesn't exist in the collection.
10 мар 18, 10:50    [21246776]     Ответить | Цитировать Сообщить модератору
 Re: SSAS 2016, свойство Server::Databases - коллекция БД на сервере. Вопрос доступ по номеру  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 30485
Блог
Ruban Igor,

А с чего вы взяли, что с нулем там что-то будет?
Может там identity, а вы удаляли пару-тройку баз.

Я бы глянул Microsoft.AnalysisServices.ModelComponentCollection.Count, а потом просто посмотрел содержимое коллекции.
10 мар 18, 10:54    [21246779]     Ответить | Цитировать Сообщить модератору
 Re: SSAS 2016, свойство Server::Databases - коллекция БД на сервере. Вопрос доступ по номеру  [new]
Ruban Igor
Member

Откуда: Киев
Сообщений: 232
Критик,

из документации взял:
https://msdn.microsoft.com/ru-ru/library/ms152441(v=sql.110).aspx
10 мар 18, 11:33    [21246799]     Ответить | Цитировать Сообщить модератору
 Re: SSAS 2016, свойство Server::Databases - коллекция БД на сервере. Вопрос доступ по номеру  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 30485
Блог
Ruban Igor,

Microsoft.AnalysisServices.ModelComponentCollection.Count что вернет?
Если больше нуля - содержимое коллекции можете глянуть?
10 мар 18, 12:05    [21246811]     Ответить | Цитировать Сообщить модератору
 Re: SSAS 2016, свойство Server::Databases - коллекция БД на сервере. Вопрос доступ по номеру  [new]
vikkiv
Member

Откуда: London
Сообщений: 1577
Можно обращаться так-же по ID, Индексу, Имени (в PS скобки квадратные)
..DataBases[ID]
..Databases[Index]
..Databases.Item()
..Databases.FindByName()
и т.д. по желанию.
Кроме того возможно есть ограничения по линии безопасности - может доступа к базе нет у данного пользователя.

Критик - индекс 0-based, т.е. начинается с нуля
10 мар 18, 14:58    [21246931]     Ответить | Цитировать Сообщить модератору
 Re: SSAS 2016, свойство Server::Databases - коллекция БД на сервере. Вопрос доступ по номеру  [new]
vikkiv
Member

Откуда: London
Сообщений: 1577
просто если-уж проверять то поэтапно, сначала - к серверу, потом есть-ли подключeние к нужной DataBases[] (есть-ли таковые через $Svr.Databases.Count ), а уже потом есть-ли обьекты в ..DataBases["db_id"].DataSourceViews.Count
10 мар 18, 15:02    [21246935]     Ответить | Цитировать Сообщить модератору
 Re: SSAS 2016, свойство Server::Databases - коллекция БД на сервере. Вопрос доступ по номеру  [new]
Ruban Igor
Member

Откуда: Киев
Сообщений: 232
vikkiv,

К серверу - есть, к базам есть по "Имени", но нету по "номеру"
10 мар 18, 15:10    [21246943]     Ответить | Цитировать Сообщить модератору
 Re: SSAS 2016, свойство Server::Databases - коллекция БД на сервере. Вопрос доступ по номеру  [new]
vikkiv
Member

Откуда: London
Сообщений: 1577
Может версии библиотек другие, или вообще какой-то другой класс, я в иногда беру по IntelliSense, там меню выскакивает с вариантами и частичным синтаксисом.
У меня работают все варианты:
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.AnalysisServices")>$Null
cls;$svr=new-object Microsoft.AnalysisServices.Server;$svr.Connect(".")
$name="ql-test"
$id="ssas_ql"
$svr.Databases[6].Name
$svr.Databases.Item(6).Name
$svr.Databases[$id].Name
$svr.Databases.Find($id).Name
$svr.Databases.IndexOf($id)
$svr.Databases.IndexOfName($name)
$svr.Databases.Contains($id)
$svr.Databases.ContainsName($name)
$svr.Databases.GetByName($name).Name
$svr.Databases.FindByName($name).Name
$svr.Databases.where({$_.Name -eq $name}).name
$svr.Databases.where({$_.ID -eq $id}).name
$svr.disconnect()
10 мар 18, 15:55    [21246973]     Ответить | Цитировать Сообщить модератору
 Re: SSAS 2016, свойство Server::Databases - коллекция БД на сервере. Вопрос доступ по номеру  [new]
vikkiv
Member

Откуда: London
Сообщений: 1577
бывает мелочь какая-нибудь - типа номер как стринг ставится, или доступ, или с самой нумерацией что-то.
10 мар 18, 15:59    [21246977]     Ответить | Цитировать Сообщить модератору
 Re: SSAS 2016, свойство Server::Databases - коллекция БД на сервере. Вопрос доступ по номеру  [new]
Ruban Igor
Member

Откуда: Киев
Сообщений: 232
Выход был найден.
Просто поработал с Server.Databases как с классической коллекцией итератором ForEach.....

Смущает другое... чем глубже изучаю метаданные SSAS MD тем больше фактов того, что
в документации описано и декларируется, а по факту - нереализовано.
11 мар 18, 14:05    [21247762]     Ответить | Цитировать Сообщить модератору
 Re: SSAS 2016, свойство Server::Databases - коллекция БД на сервере. Вопрос доступ по номеру  [new]
Ferdipux
Member

Откуда: Москва
Сообщений: 454
Ruban Igor
Критик,

из документации взял:
https://msdn.microsoft.com/ru-ru/library/ms152441(v=sql.110).aspx


Так там
public Database this[
	int index
] { get; }


То есть требуется писать
Server.Databases[0]

Server.Databases.Item(0) - это будет БД с ID=0.

В целом - AMO вполне работоспособно, но сделано до LINQ, поэтому делать запросы к AMO с LINQ не получается (у меня). Только итератором и сравнением.
12 мар 18, 10:35    [21248739]     Ответить | Цитировать Сообщить модератору
Все форумы / OLAP и DWH Ответить