Python 如何在使用pyodbc cursor.executemany()时获得正确的行计数
在Python 如何在使用pyodbc cursor.executemany()时获得正确的行计数,python,sql,pyodbc,Python,Sql,Pyodbc,在pyodbc中,当使用cursor.execute()时,cursor.rowcount工作正常。但是,当使用cursor.executemany()时,它总是返回-1 如何为cursor.executemany()获得正确的行数 这适用于多个插入、更新和删除。您不能这样做,只能从ExecuteMy返回最后一个查询行计数,至少pyodbc代码文档中是这样说的-1通常表示查询有问题。 如果您确实需要行数,则需要在循环中执行cursor.execute或为pyodbc库编写修补程序。我相信您可以先
pyodbc
中,当使用cursor.execute()
时,cursor.rowcount
工作正常。但是,当使用cursor.executemany()
时,它总是返回-1
如何为cursor.executemany()
获得正确的行数
这适用于多个插入、更新和删除。您不能这样做,只能从ExecuteMy返回最后一个查询行计数,至少pyodbc代码文档中是这样说的-1通常表示查询有问题。
如果您确实需要行数,则需要在循环中执行cursor.execute或为pyodbc库编写修补程序。我相信您可以先执行另一个数据库查询,避免pyodbc的这个问题,然后进行行数 在实际需要的查询游标之前创建另一个游标,例如“cursor0”。然后从desiredTable WHERE desiredConditions中选择计数(*) 我认为,如果您能看到一些代码,就更容易了
cursor = cnxn.cursor()
cursor2 = cnxn.cursor()
cursor.execute("SELECT COUNT(*) FROM myTable")
row = cursor.fetchone()
print (str(row[0]))
cursor2.execute("SELECT * FROM myTable")
row = cursor2.fetchone()
while row:
print(str(row))
我希望我在某些方面有所帮助
我在回答之前已经测试过代码,我相信它对您正在处理的代码或出于学习目的有效。您还必须在
语句中重新分配行
,而行
语句则会无限循环