微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将项目列表传递给pyodbc executemany函数

如何解决将项目列表传递给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)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。