Почему добавление моего Sql UPDATE нарушает мой цикл? - PullRequest
0 голосов
/ 29 апреля 2011

У меня есть следующий код, который без экранированного оператора 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))

Когда я отменяю вызов UPDATE, он повторяется один раз, а затем останавливается.

Что дает? Об ошибках не сообщается. Я уверен, что это что-то простое, но я просто не могу взломать это ...

Ответы [ 2 ]

4 голосов
/ 29 апреля 2011

Я думаю, что вызов execute изменяет состояние c, так что на следующей итерации цикл заканчивается.

1 голос
/ 29 апреля 2011

Я не знаю Python, поэтому я пытаюсь объяснить, что я делаю в C #.
Вы выполняете команду, используя тот же объект DataReader (c в Python), поэтому у вас есть сброс ипоэтому странное поведение.
По моему мнению, вам не нужно копировать строки в другом объекте, а только создать новый объект Command (пустой) и использовать его для выполнения вашего запроса, принимая параметры из c.
Поправьте меня, если я ошибаюсь, пожалуйста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...