通过ODBC修改现有的MS Access查询

时间:2019-01-07 16:55:38

标签: python ms-access odbc arcmap pypyodbc

我有一个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 :(得分:0)

要在通过ODBC的Access中创建保存的查询,我们可以使用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

尝试以上操作之前。