为什么添加我的Sql UPDATE会破坏我的循环?

时间:2011-04-28 21:19:56

标签: python sql sqlite

我有以下代码,如果没有转义的SQL语句,它可以正常工作 - 它会迭代上一个SELECT查询的完整返回集,打印ID,检测到的语言(来自bingtranslate)和文本。

for row in c:
  lang=bingtranslate(row[0])
  tweetid = row[1]
  print tweetid, lang, row[0]
  #c.execute('UPDATE tweet SET iso_language_code=? WHERE id=?',(lang, tweetid))

当我unescape UPDATE调用时,它会循环一次,然后停止。

是什么给出的?没有报告错误。我确信这很简单,但我无法破解它......

2 个答案:

答案 0 :(得分:4)

我认为对execute的调用会改变c的状态,因此在下一次迭代中循环结束。

答案 1 :(得分:1)

我不懂Python,所以我试着解释一下我在C#中做了什么 你正在使用DataReader的相同对象(python中的c)执行一个命令,所以你有一个重置,所以奇怪的行为。
在我看来,您不需要复制另一个对象中的行,而只需创建一个新的Command对象(空)并使用它来执行从c获取参数的查询。
如果我错了,请纠正我。

相关问题