Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在使用pyodbc cursor.executemany()时获得正确的行计数_Python_Sql_Pyodbc - Fatal编程技术网

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))
我希望我在某些方面有所帮助


我在回答之前已经测试过代码,我相信它对您正在处理的代码或出于学习目的有效。

您还必须在
语句中重新分配
,而行
语句则会无限循环