Pyodbc для запуска сохраненных запросов доступа - PullRequest
0 голосов
/ 17 сентября 2018

Я думаю, что это уже отвеченный вопрос, но ответ ниже не работает для меня.

Как выполнить запрос, сохраненный в MS Access, используя pyodbc

Ниже приведен простой код Python для подключения к базе данных MS Access.Согласно ответу, созданный запрос на выборку следует рассматривать как представление из Python.Однако Python жалуется на это сообщение

Исходное сообщение об ошибке было на корейском языке.поэтому мой перевод сообщения:

Ошибка выполнения на sql «SELECT * FROM MySavedQuery»: («42000», «[42000] [Microsoft] [ODBC Microsoft Access Driver] не является допустимымУбедитесь, что в нем указан неправильный символ или символ или он слишком длинный (-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.

Что я сделал неправильно?Причиной является запрос?Кроме того, Call MySavedQueries также не работает

EDITED: запрос хорошо работает в Access (также я использую его более 6 месяцев для Power BI)

ОБНОВЛЕНИЕ: установкаpyodbc.pooling = False не заставляет скрипт работать

Заранее спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...