我在我的SSAS多維數據集中有許多對象,其中許多對象被創建爲不可見。例如:閱讀SQL分析服務元數據
CREATE MEMBER CURRENTCUBE.[Measures].[Latency Backcolor]
AS CASE
WHEN [Average Latency] > [Web Alert] THEN 6384849
WHEN [Average Latency] > [Web Warn] THEN 4577517
ELSE IIF ([measures].[Query count] > NULL, 14876123, null)
END, VISIBLE = 0;
這是不可見的:
CREATE MEMBER CURRENTCUBE.[Measures].[Average Latency]
AS IIF ([Measures].[Query Count] > 0, [Measures].[Total Ms]/[Measures].[Query Count], null),
FORMAT_STRING = "#,##0.00000;-#,##0.00000",
BACK_COLOR = [Latency Backcolor],
VISIBLE = 1,
DISPLAY_FOLDER = 'Overall',
ASSOCIATED_MEASURE_GROUP = 'Fact Raw FD';
這是。
我試過兩種方法來詢問立方體。首先,使用Microsoft.AnalysisServices.AdomdClient
命名空間。例如:
using Microsoft.AnalysisServices.AdomdClient;
var _connection = new AdomdConnection
{
ConnectionString = "Data Source=localhost;User ID=me;Password=secret;Initial Catalog=dbname",
ShowHiddenObjects = true
};
_connection.Open();
CubeDef _cube = _connection.Cubes["MyCube"];
// _cube.Measures
我也嘗試了Microsoft.AnalysisServices
命名空間。例如:
using Microsoft.AnalysisServices;
Server server = new Server();
server.Connect("Data Source=localhost;User ID=me;Password=secret");
Database database = server.Databases.GetByName("dbname");
Cube cube = database.Cubes.FindByName("MyCube");
// cube.Dimensions
// cube.MeasureGroups[].Measures
以上所有內容都是直接從工作代碼中獲取的(儘管爲了提出問題而減少到最小值)。一切工作都完美地與任何代碼,唯一的例外,我不能「看到」我的任何隱藏的對象,如措施。我可能使用原始的MDX,我可以使用第二種技術從數據庫中檢索。 (嚴重)不利的一面是我必須自己解析它,這將是一個真正的嗡嗡聲。有得到是一種方式來達到實際的對象,而不必跳過這麼多的籃球。
謝謝!