тут дело в том, что listitem может не доходить до 3, либо SQL-запрос не возвращает данные. Добавь логирование, чтобы понять, где косяк. Еще проверь, что def действительно 0 или 1, и что ALTER TABLE выполняется. Если всё ок, но не работает, то либо права на БД кривые, либо кэш запросов не...