Почему я получаю ошибку «база данных заблокирована» в этом простом коде обновления Python sqlite3? - PullRequest
0 голосов
/ 20 марта 2019

Каждый запрос SQLITE, который я делаю, обычно проходит нормально, за исключением того, что я не могу обновить БД.

db = sqlite3.connect("data.db")
cursor = db.cursor()
str_datetime = str(datetime.datetime.now())
cursor.execute("""UPDATE ads SET publish_end_datetime = ? WHERE ad_code = ?""", (str_datetime, 1411671200))
db.commit() # is this commit statement even necessary?
db.close()

Я получаю следующую ошибку:

OperationalError Traceback (самый последний вызов последний) в () 3 str_datetime = str (datetime.datetime.now ()) 4 ----> 5 cursor.execute ("" "SET ОБНОВЛЕНИЯ объявлений publish_end_datetime =? WHERE ad_code =?" "", (Str_datetime, 1411671200)) 6 db.commit () 7 дБ.close ()

OperationalError: база данных заблокирована

1 Ответ

0 голосов
/ 20 марта 2019

Я думаю, что нашел проблему.Когда база данных используется, файл database.db-journal создается в том же месте.Это основной показатель того, что БД используется.Я не нашел, что «использует» мою БД, но я нашел, как решить мою проблему.Похоже, что OneDrive мог быть проблемой.Я скопировал свой data.db на рабочий стол, вне OneDrive, и, наконец, мне удалось заставить оператор обновления работать.

Надеюсь, это поможет другим людям.

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