2017-03-16 14 views
1

net. 내가하려고하는 것은 Visual Studio 2015에서 ado.net을 사용하여 MDX 쿼리를 실행하는 것입니다. 누군가 제발 나를 참조하십시오. 링크를 사용하면 어떻게 작동하는지 알 수 있습니다.VBX에서 ado.net을 사용하여 Visual Studio 2015에서 MDX 쿼리를 실행하는 방법

그 외에도 ado.net이 MDX 쿼리를 실행할 수있는 유일한 방법은 커뮤니티와 다른 질문이 필요합니다. 다른 언어를 사용하여 수행 할 수없는 유일한 방법입니다. 서버 측 언어로 vb.net을 사용하고 있습니다. . 나를 도울 수있는 링크 나 코드를 알려주십시오.

답변

2

인터넷에 많은 정보가 있습니다 (예 : this 또는 that).

C 번호 : I는 서버 측에서 리눅스를 사용하는 것을 선호하기 때문에

using (AdomdConnection conn = new AdomdConnection("Data Source=tfsDB;Initial Catalog=Tfs_Analysis; MDX Compatibility=1;")) 
{ 
    conn.Open(); 
    var mdxQuery = new StringBuilder(); 
    mdxQuery.Append("WITH "); 
    mdxQuery.Append("SET [Last 4 weeks] as Filter([Date].[Date].[Date], [Date].[Date].CurrentMember.Member_Value < Now() AND [Date].[Date].CurrentMember.Member_Value >= DateAdd(\"d\", - 28, Now())) "); 
    mdxQuery.Append("SELECT NON EMPTY Hierarchize(AddCalculatedMembers({DrilldownLevel({[Work Item].[System_WorkItemType].[All]})})) DIMENSION PROPERTIES PARENT_UNIQUE_NAME,HIERARCHY_UNIQUE_NAME ON COLUMNS , NON EMPTY {Hierarchize(Distinct({[Last 4 weeks]}))} DIMENSION PROPERTIES PARENT_UNIQUE_NAME,HIERARCHY_UNIQUE_NAME ON ROWS "); 
    mdxQuery.Append("FROM (SELECT ({[Work Item].[System_WorkItemType].&[Requirement], [Work Item].[System_WorkItemType].&[Change Request]}) "); 
    mdxQuery.Append("ON COLUMNS FROM [Team System]) WHERE ([Work Item].[Iteration Hierarchy].[All],[Test Case].[System_WorkItemType].[All],[Work Item].[System_State].&[Active],[Measures].[Work Item Count]) "); 

    using (AdomdCommand cmd = new AdomdCommand(mdxQuery.ToString(), conn)) 
    { 
     DataSet ds = new DataSet(); 
     ds.EnforceConstraints = false; 
     ds.Tables.Add(); 
     DataTable dt = ds.Tables[0]; 
     dt.Load(cmd.ExecuteReader()); 
     return dt; 
    } 
} 

, 파이썬을 통해 큐브를 액세스에 대한 my blog post을 확인 할 수 있습니다.

파이썬 :

>>> import olap.xmla.xmla as xmla 
No handlers could be found for logger "olap.xmla.requests_kerberosauth" 
>>> provider = xmla.XMLAProvider() 
>>> connect = provider.connect(location='http://localhost/OLAP/msmdpump.dll',username='test_user',password='1234567') 
>>> source = connect.getOLAPSource() 
>>> print source.getCatalog("TestCube") 
XMLACatalog:(row){ 
CATALOG_NAME = "TestCube" 
DESCRIPTION = "" 
DATE_MODIFIED = "2016-08-07T09:47:05.026667" 
} 
+1

그들은 너무 길고, 내가 부분적으로, 덕분에 코드를 추가했습니다! –

+0

예, 저는 전쟁과 평화를 제 대답으로 어떻게 복사 할 수 있을지 궁금해하는 링크로이 문제를 직접 짚었습니다. 그러나 당신이 한 일이 당신의 대답을 향상 시켰다고 생각합니다. 감사. – Bugs