Изменить существующий MS Access Query через ODBC - PullRequest
0 голосов
/ 07 января 2019

У меня есть скрипт на python, который обновляет и генерирует экспорт в ArcMap. Документ ArcMap извлекает данные для отображения из MS Access. В настоящее время я должен войти в MS Access и обновить критерии для даты в столбце / в (в режиме конструктора) и сохранить ее перед запуском сценария для генерации экспорта. Я хотел бы иметь возможность просто обновить диапазон дат в окне критериев, сохранить запрос и закрыть соединение.

Я пытался использовать строки SQL Update, но я получаю ошибки из-за слишком малого числа аргументов и не хочу, чтобы он создавал или изменял какие-либо таблицы. Только запрос в моей базе данных.

db = pypyodbc.connect(
r"Driver={Microsoft Access Driver (*.mdb)};"+
    r"Dbq=P:\path\path\path.mdb;")

sql = """SELECT DISTINCT"""

db.cursor().execute(sql).commit()

1 Ответ

0 голосов
/ 08 января 2019

Чтобы создать сохраненный запрос в Access через ODBC, мы можем использовать оператор CREATE VIEW, например,

crsr.execute("CREATE VIEW CAD_Extract_Mapping AS SELECT ...")

К сожалению, Access SQL не поддерживает ALTER VIEW, а DROP VIEW также не работает. Тем не менее, обходной путь должен использовать DROP TABLE view_name, например,

crsr.execute("DROP TABLE CAD_Extract_Mapping")
crsr.execute("CREATE VIEW CAD_Extract_Mapping AS SELECT ...")

Обратите внимание, что многие команды DDL не будут выполняться внутри транзакции, поэтому вам может потребоваться использовать

cnxn.autocommit = True

, прежде чем пытаться описать выше.

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