2010-10-15 17 views
5

SSAS küpümde, çoğu görünmez olması için oluşturulmuş bir dizi nesneye sahibim. Örneğin:SQL Analysis Services Meta verilerini okuma

değildir görülebilecek ve
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; 

olan: olan

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'; 

.

Küpü sorgulamak için iki yöntem denedim. İlk olarak, Microsoft.AnalysisServices.AdomdClient ad alanını kullanın. Örneğin:

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 

Ben de Microsoft.AnalysisServices ad denedim. Örneğin: (soru sorma amaçlı minimumda olsa) yukarıdakilerin

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 

Tüm

çalışma koduna doğrudan alınır. Her şey, her iki kodla da mükemmel bir şekilde çalışır; tek istisna, Önlemler gibi gizli nesnelerimden hiçbirini "göremiyorum". I , ikinci tekniği kullanarak veritabanından alabildiğim ham MDX'i kullanabilir. (Cidden) aşağı tarafı, kendimi gerçek bir vızıltı öldürecek olan ayrıştırmam gerekecek. , birçok çemberden atlamak zorunda kalmadan gerçek nesnelere ulaşmanın bir yolu olmak için'a sahiptir.

Teşekkürler!

cevap

2

Bildiğim kadarıyla, ADOMD nesne modelleriyle gizli önlemler almanın bir yolu yoktur. XML/A kullanmalı ve ortaya çıkan XML ile ilgilenmelisiniz.

Ayrıca önereceğim başka bir çözüm de doğrudan gizleme önlemleri yerine Perspectives kullanıyor. Bildiğiniz gibi veya tahmin edebileceğiniz gibi, üyelerin gizlenmesiyle küpün alt kümesini oluşturmak için Perspectives kullanılır. Bu şekilde, tüm ölçümlere ADOMD nesne modeli ile erişebilir ve kullanıcılarınızın yalnızca geçerli Perspective'da bulunan küpün üyelerini görmelerini sağlayabilirsiniz.

İlgili konular