Я новичок в Python и надеюсь, что кто-то может помочь мне выяснить, как выполнить SQL-запрос для каждого элемента в кортеже, используя Python.Выполнение SQL-запроса для каждого элемента в кортеже
У меня есть сервер SQL Express, который содержит несколько баз данных для системы чтения значков. То, что я пытаюсь сделать, это вытащить идентификатор пользователя, который был отсканирован в конкретный читатель, а затем использовать эти идентификаторы для получения фактических имен пользователей.
В настоящее время я могу запустить запрос, который вытаскивает идентификатор пользователя и запускает запрос в другой таблице, используя только один идентификатор. То, что вы хотите иметь, и, похоже, обнаруживаете проблему, выполняет этот второй запрос для каждого идентификатора пользователя в кортеже, который создается из первого запроса. Ниже приведен код для двух функций, которые я использую в настоящее время.
def get_id():
global cardholder
global cur
cur.execute("SELECT user_id FROM db.table WHERE badgereaderid = 'badgereader1'")
cardholder = []
rows = cur.fetchall()
for row in rows:
if row == None:
break
cardholder.append(row[0])
print(cardholder)
def get_name():
global cardholder
global user
global cur
cur.execute("SELECT FirstName, LastName FROM db.table WHERE user_id= '%s'" % cardholder)
while 1:
row = cur.fetchone()
if row == None:
break
user = row[0] + row[1]
вы можете перебираем 'cardholder' ... Помимо: какой модуль вы используете для подключения к SQL Server Express? – bernie
Я использую pyodbc – mtnbiker1185
В этом случае используйте '?' Вместо '% s' и передайте значения в качестве второго аргумента (и убедитесь, что он итерабелен) на' .execute() '... – bernie