如何解决将项目列表传递给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 举报,一经查实,本站将立刻删除。