Pyodbc运行保存的访问查询

时间:2018-09-17 09:34:12

标签: python sql pandas ms-access pyodbc

我认为这是一个已经回答的问题,但是下面的答案对我不起作用。

How to execute query saved in MS Access using pyodbc

下面是连接MS Access数据库的简单python代码。 根据答案,创建的选择查询应视为来自Python的视图。但是,Python会用此消息抱怨

原始错误消息是韩语。因此消息的“我的翻译”是:

  

在SQL'SELECT * FROM MySavedQuery'上执行失败:('42000',“ [42000] [Microsoft] [ODBC Microsoft Access驱动程序]不是有效的名称。请确保在其中输入错误的字符或符号还是太长(-1002)(SQLExecDirectW)“)

有趣的是,除了那个简单的查询外,其他更简单的查询都在使用链接解决方案。

import pyodbc
import pandas as pd

connStr = (
r"Driver={Microsoft Access Driver (*.mdb, *.accdb)};"
r"DBQ=D:\Documents\Europe\DB\test.accdb;"
)

conn = pyodbc.connect(connStr)


query = "SELECT * FROM MySavedQuery"
dataf = pd.read_sql(query, conn)

conn.close()

MySavedQuery的结构为:

SELECT * FROM Table1
WHERE Condition1
UNION ALL
SELECT * FROM Table2
WHERE Condition2

此外,Table2是另一个accdb文件中的链接表。

我做错了什么?原因是查询? 呼叫MySavedQueries也无法正常工作

已编辑:该查询在Access中运行良好(对于Power BI我也已经使用了6个月以上)

更新:将pyodbc.pooling = False不能使脚本正常工作

预先感谢

0 个答案:

没有答案