使用 IronPython 在 SQL Server Analysis Services 上执行查询

Posted

技术标签:

【中文标题】使用 IronPython 在 SQL Server Analysis Services 上执行查询【英文标题】:Execute query on SQL Server Analysis Services with IronPython 【发布时间】: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。

有什么问题?

【问题讨论】:

【参考方案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”

以上是关于使用 IronPython 在 SQL Server Analysis Services 上执行查询的主要内容,如果未能解决你的问题,请参考以下文章

SQL Serve 日志体系结构

SQL serve 2008 r2安装失败,为啥?怎么办才好!!!!急急急!!!!

关于数据库 Oracle 和 SQL Serve

我想要把sql serve2000的mdf ldf文件升级到能在sql2012中用 求大神帮忙转换

php连接sql serve后如何执行sql语句

如何在IronPython控制台中清除屏幕?