Передача списка элементов в функцию pyodbc executemany

Я пытаюсь использовать функцию выполнения многих pyodbc для отправки пакета операторов выбора в SQL (Windows SQL Server Studio). Я перепробовал все форматы под солнцем, чтобы избежать бесчисленных ошибок, которые он выдает. В конце концов, мне удалось получить ответ. Использование следующего формата для передачи значений:

clients = [('test1', ),('test2', ), ('test3', ), ('test4', )]

Затем я передаю это в следующую функцию:

def sql_createconnection(): 
    global cnxn
    global cursor
    server = 'XXXXXXXX'
    database = 'XXXXXXXXXX'
    username = 'XXXXXXXXXX'
    password = 'XXXXXXXXXX'
    driver= '{ODBC Driver 17 for SQL Server}'
    cnxn = pyodbc.connect("DRIVER={};PORT=1433;SERVER={};PORT=1443;DATABASE={};UID={};PWD={}".format(driver,server,database,username,password),autocommit=False)
    cursor = cnxn.cursor()
    cursor.fast_executemany = True
    
def customertablecounts(clients):
    sql_createconnection2()
    cursor.executemany("select count(*) from dbo.[Customer_Table] where customer = ?", clients)
    while cursor.nextset():   # skips the first resultset
        try:
            results = cursor.fetchall()
            print(results)
            break
        except pyodbc.ProgrammingError:
            print('nil')
            continue
customertablecounts(clients)

Это дает следующий единственный результат: [(1,)], который мне удалось выделить как счетчик всего, что помещено во второй кортеж ввода.

В идеале я бы использовал cursor.fetchall(), чтобы получить ответ; но это возвращает ошибку:

ProgrammingError: нет результатов. Предыдущий SQL не был запросом.

Любая помощь будет принята с благодарностью!

Спасибо!

# apps=cursor.fetchall()
# print(apps)

person rpatt97    schedule 26.10.2020    source источник