SQlite3 OperationalError: попытка записи базы данных только для чтения во время рекурсии - PullRequest
0 голосов
/ 22 января 2019

У меня есть код, который использует рекурсию для переноса данных из одной записанной в Интернет таблицы в базу данных SQlite.Когда я запускаю код, он показывает, как он выполняет итерацию данных правильно, но в середине итераций он неожиданно прерывается, говоря:

Файл "C: \ Users \ rub \ Desktop \ Phyton \ mtgdb_v2.py ", строка 173, в insert_tcg cursor.execute (sql, values) sqlite3.OperationalError: попытка записи базы данных только для чтения.

Модуль, который вводит данные для добавления строки в базу данных,исходя из рекурсивного "def":

def insert_tcg(cardcode,nameEN,rarity,cardno,trendTCG,midTCG,lowTCG):    
    values=(cardcode,nameEN,rarity,cardno,trendTCG,midTCG,lowTCG)
    print(values) #this one is for visually check the data that manages
    with sqlite3.connect("MTGdb.db") as db:
        cursor=db.cursor()
        sql="insert into TCGdb (cardcode, nameEN, rarity, cardno, trendTCG, 
        midTCG, lowTCG) values (?,?,?,?,?,?,?)"
        cursor.execute(sql,values)
        db.commit() 

Я запускал его много раз и затем просматривал базу данных, я увидел, что она правильно вводит случайное количество строк (например, иногда 26, иногда 128,другие 210) из общего числа ожидаемых 224 строк, когда я ожидал, что все строки будут введены в базу данных.База данных находится в папке на рабочем столе (жесткий диск).Странно видеть, как БД превращается в чтение базы данных.

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