问题描述
我试图使用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 (将#修改为@)