是否使用所需参数通过Pyodbc运行保存在MS Access中的查询?

2022-04-25 00:00:00 python pyodbc ms-access

问题描述

我正在使用Pyodbc将我的程序连接到MS Access。在Access数据库中,我预先创建了一些需要参数的查询。在Python中执行查询时,如何将值传递给查询的参数?


解决方案

当Access数据库包含已保存的参数查询时,它们由Access ODBC公开为存储过程,并且可以使用ODBC{call ...}语法进行调用。例如,使用名为[ClientEmails]的已保存查询...

PARAMETERS prmLastName Text ( 255 );
SELECT Clients.ID, Clients.LastName, Clients.FirstName, Clients.Email
FROM Clients
WHERE (((Clients.LastName)=[prmLastName]));

.以下Python代码将运行该查询并返回特定姓氏的结果:

cmd = "{call ClientEmails(?)}"
params = ("Thompson",)
crsr.execute(cmd, params)  # pyodbc "cursor" object
for row in crsr.fetchall():
    print(row)

相关文章