Что то не могу сообразить, есть цикл с запросом в бд, for ret in cursor.execute(), если значение в полях есть, то переменная ret содержит это значение, а если нет??? Пробовал проверку на None, не помогло. Так как мне отловить пустую строку при запросе?
Измерить длину списка, который возвращает cursor.execute. Если длина вернувшегося списка - ноль, значит курсор в базе ничего не нашёл и перебирать в цикле нечего.
base=sq.connect('Some_base.db')
cur=base.cursor()
for ret in cur.execute('SELECT Photo FROM Collect_Foto_5 WHERE Address == ? AND Entrance_N == ?',(adress,entrance)).fetchall():
конкретный кусок вытащил, посмотреть.
Если в Collect_Foto_5 ничего нет, то как это отловить?
HardX, ну а что я говорил? Курсор возвращает вам пустой список. В нём объектов нет. Я же говорю, измерьте длину того, что возвращает курсор (т.е. списка того, что в курсор вернулось из бд). Если длина cursor.execute - ноль, то не вернулось ничего.
Объектов в списке ноль - перебирать в цикле нечего.
Что-то ещё непонятно?
Алан Гибизов, Вопрос был конкретно про ЦИКЛ FOR RET IN CUR.EXECUTE, Цикл ничего не возвращает, а точнее и не происходит, по этому RET не существует и его размер измерить невозможно.
HardX, для особо невнимательных третий раз повторяю: надо измерять длину курсора, а не того, что вы ожидаете получить при итерации курсора.
Если длина курсора - ноль, то ни одной и итерации не будет и ret не создаётся.
Впрочем, вы можете создать ret перед циклом, положить туда None и проверять после цикла - если там None, то видимо ни одной итерации не было и ret остался как был до цикла.
Алан Гибизов, это интересно, не думал что возможно измерить длину курсора. Сейчас попробую, спасибо за наводку! Приношу извинения, изначально Вас неправильно понял
HardX, не самого курсора, конечно, а длину того, что возвращает метод курсора execute.
Присвойте в какую-либо переменную список, который возвращает cursor.execute, и проверьте его длину. Если длина не ноль, итерируйте эту переменную своим циклом. Если ноль - ну, что там надо делать вам, если ничего не найдено?
Блин ну да, если такой запрос писать то все так и есть, я выше об этом писал, а мне нужно в цикле for ret in cursor.execute....
Но т.к. цикл не выполнится ни разу если cursor пустой, то похож иначе никак