使用 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.dll 和 mdx 查询。 并在 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 2008 r2安装失败,为啥?怎么办才好!!!!急急急!!!!