这是我的代码:
r = ''
while True:
data = result.fetch_row()
r+= record[0][0] + record[0][1] + record[0][0]
print r
我想要做的是,首先获取所有行:
data = result.fetch_row(0)
然后为"数据"
运行循环而不是在while循环中执行。
答案 0 :(得分:2)
您可以将循环到光标本身:
for row in result:
# do something with row
Python DB-API 2 specification中的游标迭代是可选的,但实际上所有当前的实现都支持它。
这使数据库适配器可以根据需要批量从数据库服务器中获取行。
如果你偶然发现不支持游标迭代的数据库适配器,那么你总是可以回到cursor.fetch_all()
:
for row in cursor.fetch_all():
# do something with row
但是,请注意这会将整个结果集加载到列表中。
答案 1 :(得分:0)
你在用什么? pyodbc?在大多数apis中,您可以使用fetchall()。
请参阅:pyodbc api并搜索fetchall()