【问题标题】:Execute query on SQL Server Analysis Services with IronPython使用 IronPython 在 SQL Server Analysis Services 上执行查询
【发布时间】:2014-07-13 14:00:23
【问题描述】:

我能够使用Microsoft.AnalysisServices.dll 连接到 Python 中的 SQL Server 分析服务,但现在我无法在多维数据集上执行查询。

我试过Execute方法,如下:

amoServer.Execute('select from finance')

发出Execute 方法后出现此错误:

<Microsoft.AnalysisServices.XmlaError object at 0x000000000000002B [Microsoft.AnalysisServices.XmlaError]>

注意:我在 Windows Server 64 位上使用 IronPython 和 Python 2.7。

有什么问题?

【问题讨论】:

    标签: sql sql-server ssas ironpython


    【解决方案1】:

    最好使用 Microsoft.AnalysisServices.AdomdClient.dllmdx 查询。 并在 Ststem.Data 程序集中的数据集中设置查询结果 像这样:

    clr.AddReference ("Microsoft.AnalysisServices.AdomdClient.dll")
    clr.AddReference ("System.Data")
    
    from Microsoft.AnalysisServices.AdomdClient import AdomdConnection , AdomdDataAdapter
    from System.Data import DataSet
    
    conn = AdomdConnection("Data Source=0.0.0.0;Catalog=MyCatalog;")
    conn.Open()
    cmd = conn.CreateCommand()
    cmd.CommandText = "your mdx query" # in your case 'select from finance'
    adp = AdomdDataAdapter(cmd)
    datasetParam =  DataSet()
    adp.Fill(datasetParam)
    conn.Close();
    
    # datasetParam hold your result as collection a\of tables
    # each tables has rows
    # and each row has columns
    print datasetParam.Tables[0].Rows[0][0]
    

    【讨论】:

    • 非常感谢 Behrooz...这个解决方案工作正常。
    • 谢谢,我可以用它来填充数据集,但是有没有一个很好的例子说明如何解析数据集以获取类似于 sql 结果集的结构?
    • 该解决方案是否也适用于 Azure 分析服务?
    • 目前(VS2017)您必须从第一个 AddReference 中省略“.dll”
    猜你喜欢
    • 2011-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-15
    相关资源
    最近更新 更多