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 veCREATE 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!