Как мы обрабатываем куб или получаем доступ к базе данных OLAP через ASP.Net с кодом C#? каков компонент, который будет использоваться, в C# .Net для подключения базы данных OLAP или действий процесса в службах anaysis?Компонент для обработки куба
ответ
Для обработки библиотеки используют Microsoft.AnalysisServices, например, код выглядит следующим образом:
Server server = new Server();
server.Connect(cubeConnectionString);
Database database = server.Databases.FindByName(databaseName);
Cube cube = database.Cubes.FindByName(cubeName);
cube.Process(ProcessType.ProcessFull);
Для запросов, используйте библиотеку Microsoft.AnalysisServices.AdomdClient, например, код выглядит следующим образом:
using (Adomd.AdomdConnection adomdConnection = new Microsoft.AnalysisServices.AdomdClient.AdomdConnection())
{
adomdConnection.ConnectionString = cubeConnectionString;
Adomd.AdomdCommand adomdCommand = new Microsoft.AnalysisServices.AdomdClient.AdomdCommand();
adomdCommand.Connection = adomdConnection;
adomdCommand.CommandText = mdxQuery;
adomdConnection.Open();
cellSet = adomdCommand.ExecuteCellSet();
adomdConnection.Close();
}
Обратите внимание, что два пространства имен перекрываются, поэтому вам может понадобиться псевдоним, если вы используете их в одном месте.
http://msdn.microsoft.com/en-US/library/ms124924(v=SQL.90).aspx
http://msdn.microsoft.com/en-us/library/ms123483(v=SQL.90).aspx
Этот пример был сделан с Visual Studio Express 2012 и $ 44 копия MS SQL 2012 (да благословит Microsoft за предоставление так много функций так мало денег). ОС была Win 8 pro.
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//the next 2 using's had to be downloaded and "Add Reference"d for Visual Studio Express 2012
using Microsoft.AnalysisServices;
using Microsoft.AnalysisServices.AdomdClient;
using System.Windows.Forms;
using System;
using System.Data;
using System.Drawing;
namespace SSASDataview
{
partial class Form1
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
private void RunSSAS(object sender, EventArgs e)
{
//i don't think Dataset is in the Analysis Services directives
DataSet ds = new DataSet();
// provider is the constant olap. datasource is the same server name you provide for Mgmt Studio or localhost
// initial catalog is tricky and important. It is not a standard ms sql database you see in Management Studio,
// even if your cube was create with tables from a particular database.
// the only place I was able to see "initial catalog" value was a File -> Open -> Analysis Services Database in 2012 Management Studio
// it was also the name of the VS2010 solution I used to create the cube.
AdomdConnection myconnect = new AdomdConnection(@"provider=olap;initial catalog=GLCubeThree;datasource=localhost");
AdomdDataAdapter mycommand = new AdomdDataAdapter();
mycommand.SelectCommand = new AdomdCommand();
mycommand.SelectCommand.Connection = myconnect;
// this query was created by the "Browser" you see for an Analysis Services project
// if you poke around the icons on the browser table the Design Mode icon will give you the cube query
// I think it's an MDX query, threre are also xml queries you can run with adomd
mycommand.SelectCommand.CommandText = "SELECT NON EMPTY { [Measures].[Per Balance] } ON COLUMNS, NON EMPTY { ([Gltime].[Fisc Per].[Fisc Per].ALLMEMBERS) } DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS FROM (SELECT ({ [Gltime].[Fisc Per].&[201301], [Gltime].[Fisc Per].&[201302], [Gltime].[Fisc Per].&[201307] }) ON COLUMNS FROM [GL Cube]) CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS";
myconnect.Open();
mycommand.Fill(ds, "tbl");
myconnect.Close();
// the below assigns the results of the cube query to a dataGridView
// if you drag a dataGridView control to your pallete it will create exactly
// what you need for the line below to work.
// your project type has to be a Window Forms Applications
// this code shown here is in the default Form1.Designer.cs not Form1.cs
dataGridView1.DataSource = new DataView(ds.Tables[0]);
}
private void Quit_Click(object sender, EventArgs e)
{
this.Close();
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
#endregion
private System.Windows.Forms.DataGridView dataGridView1;
private System.Windows.Forms.Button runssas;
private System.Windows.Forms.Button quit;
}
}
Есть ли более новая версия ADOMD.NET? Единственное, что я могу найти, это [это] (http://www.microsoft.com/en-us/download/details.aspx?id=23089), но это было загружено в 2005 году –
. Здесь нет ничего о кубе. –
Ответ на это уже поделились выше, но просто делюсь, что я тоже использовал те же Microsoft.AnalysisServices от API, относящиеся образец проекта, загруженный с here обработать куб из C#, но , когда размерность данные будут изменены, тогда вам нужно обработать базу данных, а не куб.
Также вы можете использовать свойство EffectiveUserName строки подключения, когда идентификатор конечного пользователя должен быть выдан на сервер.
ПРИМЕЧАНИЕ: Чтобы использовать свойство EffectiveUserName, вызывающий объект должен иметь административные разрешения в Analysis Services.
Вы должны обработать базу данных, а не куб. Потому что куб имеет только меры, а не размеры внутри. Это может привести к некоторым конфликтам.
Для Prozess всех, кубов и размеров вы должны обрабатывать всю базу данных:
Server server = new Server();
server.Connect(cubeConnectionString);
Database database = server.Databases.FindByName(databaseName);
database.Process(ProcessType.ProcessFull);
- 1. ссылочной целостности ошибка обработки измерений для куба
- 2. Компонент для обработки данных delphi7 компонент
- 3. Компонент куба решения Borland не загружается
- 4. .NET компонент обработки фото
- 5. Ошибка обработки куба только в параллельном режиме
- 6. Развернуть только схему куба, без обработки
- 7. Развертывание куба SSAS без изменений требует обработки
- 8. Рекомендации по определению максимальной частоты для обработки куба SSAS?
- 9. Компонент .Net для обработки отсканированной анкеты?
- 10. Принудительный компонент Vue для повторной обработки
- 11. Развернуть сценарий куба SSAS для нескольких экземпляров куба
- 12. Какой лучший компонент для обработки текстов для .NET.
- 13. Ошибка обработки куба SSAS. возвращающая информация о трассировке берет навсегда
- 14. Вариант обработки куба SSAS, который имеет большую производительность
- 15. обработки OLAP куба с T-SQL хранимых процедур
- 16. Сервер анализа SQL Server 2014 ошибка обработки куба
- 17. Нет информации трассировки во время обработки куба в SSAS
- 18. КУБА платформа: проектирование экранов для иерархии классов
- 19. Как отобразить компонент обработки в форме окна
- 20. Реакция: требуется вызвать родительский компонент для повторной обработки
- 21. Как остановить компонент SSIS Script для обработки данных
- 22. Как использовать компонент messageSource для обработки сообщений проверки Hibernate?
- 23. Проблема в размерах куба
- 24. Шаблон документации для куба SSAS
- 25. IOS GLKit Текстуры для куба
- 26. Написание обновлений для OLAP-куба
- 27. Разная геометрия для поверхностей куба
- 28. Пакет SSIS для автоматизации обработки
- 29. Проблема обновления куба SSAS
- 30. Конфигурация куба
спасибо за ответ –
Я не думаю, что вам нужен adomdConnection.Close(); так как вы используете инструкцию using. Однако я думаю, что вы должны adomdCommand.Dispose(); поскольку adomdCommand не используется в инструкции using, но im не совсем уверен. – user3711421
@Meff, Какая именно библиотека использует ваша переменная «Сервер»? –