def getRowFromPolynomes(self, paramId):
qry = 'SELECT * FROM polynomes WHERE par_id = %d' % paramId
self.edb.curs.execute(qry)
row = self.edb.curs.fetchone()
return row
def fixPolynomes(self):
rowCount = self.edb.curs.execute('SELECT par_id FROM params')
for x in xrange(0, rowCount):
# THE PROGRAM FAILS AT THIS LINE, HOWEVER paramId is correctly received.
# IT IS CORRECTLY PRINTED, NAMELY THE 28731 AT THE BEGINNING OF MY OUTPUT
paramId = self.edb.curs.fetchone()[0]
print paramId
result = self.getRowFromPolynomes(paramId)
if result is None:
self.addRowToPolynomes(1, paramId)
数字2873是self.edb.curs.fetchone()[0]
的预期输出,它被正确地打印出来,但是程序在第45行失败,也就是paramId = self.deb.curs.fetchone()[0]
我不明白,我还缺什么?在
我的输出:
^{pr2}$
问题是您在这两个方法中都使用了
self.edb.curs
,因此在第一次迭代期间,游标将获取一行进行查询:但在这个循环中你称之为:
^{pr2}$此方法使用相同的游标执行查询:
因此,第一个查询的结果被清除,但是
rowCount
的值在:保持不变。在
后一个查询只返回了对
fetchone()
的一个行sow next调用:确实返回}确实没有方法
None
和{__getitem__
,因此按索引访问失败。在解决方案:
您可以对此进行调整,但方法
getRowFromPolynomes(self, paramId)
绝对不需要,因为您可以在一个查询中联接两个表。谢谢你的评论。我知道这一点,但我只想对OP的代码进行绝对必要的修改。不管怎样,我只是纠正了这一点,因为你是对的。
相关问题 更多 >
编程相关推荐