从服务器执行查询时python.exe崩溃

时间:2018-04-06 09:41:06

标签: python mdx olap pywin32 adodbapi

我尝试在工作时从Analysis Service服务器执行微小的mdx查询。 服务器通过ms ole db而不是odbc规范提供数据,这就是我使用adodbapi库的原因。

这是我用来获取查询执行结果的函数:

def mdx_query (query):
    conn = adodbapi.connect("PROVIDER=MSOLAP; \
                         persist security info=true; \
                         Data Source=***; \
                         initial catalog=analyse;")
    cursor = conn.cursor()
    try:
        cursor.execute(query)
        result = cursor.fetchone()
    except (adodbapi.Error, adodbapi.Warning) as e:
        print(e) 
    cursor.close()
    del cursor
    conn.close()
    del conn

    return result

原始单值查询非常有效:

select 
[Physical Stock PCS] on 0, 
[Goods].[Categories].[ALL] on 1 
from [analyse]

如果我遇到语法错误,它也只是给我adodbapi.Error消息,它很好。

但是如果我尝试执行更复杂的查询,例如:

select 
[Physical Stock PCS] on 0, 
[Goods].[Categories].[Level 01] on 1 
from [analyse]

[商品]。[类别]。[等级01]有多个维度,无论如何我总是得到python.exe APPCRASH消息。

我尝试了python 2和3,在jupyter和console模式下运行,pandas.read_sql_query方法。结果总是一样的 - 我得到APPCRASH窗口。

如何治愈崩溃并最终执行复杂的查询? 任何帮助表示赞赏!

UPD:此处的错误窗口。无法将其更改为EN。Appcrash error

0 个答案:

没有答案