powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / MSAS 2016. CLR function with AMO.
11 сообщений из 11, страница 1 из 1
MSAS 2016. CLR function with AMO.
    #39621427
Oleon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!

Хочу написать CLR табличную функцию для SQL Server 2016, которая будет возвращать список групп мер и список партиций. При попытке сделать Publish на сервер получаю ошибку:

(62,1): SQL72014: .Net SqlClient Data Provider: Msg 6503, Level 16, State 12, Line 1 Assembly 'microsoft.analysisservices, version=13.0.0.0, culture=neutral, publickeytoken=89845dcd8080cc91.' was not found in the SQL catalog.

Код такой:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
using System;
using System.Collections;
using System.Text;
using Microsoft.AnalysisServices;
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server;
using System.IO;

public partial class UserDefinedFunctions
{
    private class TableType
    {
        public SqlString MGName{ get; set; }
        public SqlString PartitionName { get; set; }
        public SqlString PartitionSQL { get; set; }
    }

    public static void TableUDF_FillRow(
        object tableTypeObject,
        out SqlString MGName,
        out SqlString PartitionName,
        out SqlString PartitionSQL)
    {
        var tableType = (TableType)tableTypeObject;

        MGName = tableType.MGName;
        PartitionName = tableType.PartitionName;
        PartitionSQL = tableType.PartitionSQL;
    }

    [SqlFunction(
        DataAccess = DataAccessKind.Read,
        TableDefinition = "MGName nvarchar(100), PartitionID nvarchar(100), PartitionSQL nvarchar(100)",
        FillRowMethodName = "TableUDF_FillRow")]
    public static IEnumerable TableUDF(SqlString Text)
    {
        ArrayList tableResults = new ArrayList();
        Server SSAS_Svr = new Server();
        SSAS_Svr.Connect("Data Source=olap-drp;Initial Catalog=FxCube;Integrated Security=SSPI;");
        if ((SSAS_Svr != null) && (SSAS_Svr.Connected))
        {
            // Find the database
            Database UW_DB = SSAS_Svr.Databases.FindByName("FxCube");
            if (UW_DB != null)
            {
                Cube UW_Cube = UW_DB.Cubes.FindByName("fxCube");
                if (UW_Cube != null)
                {
                    // Find the Measure Group
                    foreach (MeasureGroup MG in UW_Cube.MeasureGroups)
                    {
                        foreach (Partition P in MG.Partitions)
                        {

                            tableResults.Add(new TableType { MGName = MG.Name, PartitionName = P.Name, PartitionSQL = ((QueryBinding)P.Source).QueryDefinition.ToString()});
                            SqlPipe objSqlPipe = SqlContext.Pipe;
                            objSqlPipe.Send("Hi! MG.Name");
                        }
                    }
                }
            }

            // Disconnect from AS Server
            SSAS_Svr.Disconnect();
        }
        tableResults.Add(new TableType { MGName = "Test1", PartitionName = "Test2", PartitionSQL = "Test3" });
        tableResults.Add(new TableType {MGName = "Test4", PartitionName = "Test5", PartitionSQL = "Test6" });
        return tableResults;
    }
}



Не пойму куда копать. В гугле не смог найти ответ.
...
Рейтинг: 0 / 0
MSAS 2016. CLR function with AMO.
    #39621445
Andy_OLAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oleon,

Например, it may caused by AMO missing прямо в гугле.

В общем, нужно скачать и установить на тот сервер, где MSSQL и куда делаете publish, отдельно ADOMD.NET для 2016-го.

вот еще хорошая статья старая .
...
Рейтинг: 0 / 0
MSAS 2016. CLR function with AMO.
    #39621630
Oleon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не помогает.

Версия сервера и операционной системы:
Microsoft SQL Server 2016 (SP1-GDR) (KB4019089) - 13.0.4206.0 (X64) Jul 6 2017 07:55:03 Copyright (c) Microsoft Corporation Enterprise Edition: Core-based Licensing (64-bit) on Windows Server 2016 Standard 6.3 <X64> (Build 14393: )

Установил отсюда https://www.microsoft.com/en-us/download/details.aspx?id=52676

ENU\x64\SQL_AS_AMO.msi

Перезапустил Analysis

Ошибка та же самая, не помогло.


А как можно увидеть установлен ли эта Assembly или нет?
...
Рейтинг: 0 / 0
MSAS 2016. CLR function with AMO.
    #39621636
Oleon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В папке, которая приведена по первой ссылке в гугле, вижу Analysis Services 10.0.0.0
...
Рейтинг: 0 / 0
MSAS 2016. CLR function with AMO.
    #39621638
Andy_OLAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oleon,

Ну тогда в %Windows%\Microsoft.NET\assembly\GAC_MSIL\ удалите каталог "Microsoft.AnalysisServices.DeploymentEngine". И все заработает.
...
Рейтинг: 0 / 0
MSAS 2016. CLR function with AMO.
    #39621642
Oleon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ENU\x64\SQL_AS_AMO.msi тоже установил, не помогло.
...
Рейтинг: 0 / 0
MSAS 2016. CLR function with AMO.
    #39621731
Oleon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такой папки нет
...
Рейтинг: 0 / 0
MSAS 2016. CLR function with AMO.
    #39622300
Andy_OLAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OleonТакой папки нет
Значит, Вы недоустановили .NET 4.6.

Там, где Вы разрабатываете - на ПК или сервере - точно есть локально установленный SQL 2016? Если нет - поставьте просто пустой инстанс , с SQL службой и SSAS службой, ошибки уйдут.
...
Рейтинг: 0 / 0
MSAS 2016. CLR function with AMO.
    #39622541
Oleon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
MSAS 2016. CLR function with AMO.
    #39622545
Oleon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
MSAS 2016. CLR function with AMO.
    #39622548
Oleon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / MSAS 2016. CLR function with AMO.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]