qman
while (c.fetchone() <> ''):
t = c.fetchone()
print "%s %s %s %s %s %s\n"%(t[0],t[1], t[2], t[3], t[4], t[5])
Этот код распечатает только половину строк из результата выборки, тк вызов fetchone каждый раз возвращает очередную строку из результирующего множества.
Пример j2a тоже не самый удачный. Во-первых, в случае если в выборке будет очень много записей, то полное их извлечение за раз может съесть достаточно много оперативки, а во-вторых если кол-во выбранных записей будет > чем значение arraysize курсора, то будет, соответственно, получено не все результирующее множество,
Я обычно пользуюсь такой конструкцией:
row = curs.fetchone()
while(row):
...
row = curs.fetchone()
Или такой(когда не удобно обращаться к колонкам по номерам):
def fetchone_dict(c):
res_dict = {}
res_tuple = c.fetchone()
if not res_tuple:
return res_tuple
for i, col_val in enumerate(res_tuple):
res_dict[c.description[i][0]] = col_val
return res_dict
...
row = fetchone_dict(curs)
while(row):
print row['col1'], row['col2']
...
row = fetchone_dict(curs)