2016-12-01 1 views
1

Я использую Pyodbc для подключения моей программы с MS Access. В базе данных Access я предварительно создал несколько запросов, требующих параметров. Как передать значения параметрам запросов при их выполнении в Python?Запустить запрос, сохраненный в MS Access, с помощью необходимых параметров через Pyodbc?

ответ

0

Когда база данных 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) 
+0

Спасибо вам Горд !! – Knoel

0

Вот обобщенный пример. Сначала подключитесь к базе данных. Затем выполните команды. Команда - это просто строка. Вы можете включать переменные из другого места в свой код через простую конкатенацию строк.

import pyodbc 

connStr = """ 
DRIVER={Microsoft Access Driver (*.mdb, *.accdb)}; 
DBQ=C:\full\path\to\your\PYODBC.accdb; 
""" 
cnxn = pyodbc.connect(connStr) 
cursor = cnxn.cursor() 

desired_column = "Forename" 
table_name = "Student" 
command = "SELECT " + desired_column + " FROM " + table_name 

cursor.execute(command) 
row = cursor.fetchone() 
if row: 
    print(row) 
Смежные вопросы