Android Studio: установка не удалась, так как APK не был подписан

Вызов conn.commit() в завершает транзакцию на диск .

Когда программа выходит из последней невыполненной транзакции, она возвращается к последнему фиксации. (Или, точнее, откат выполняется следующей программой, чтобы открыть базу данных .) Таким образом, если commit никогда не вызывается, в базе данных изменений нет.

Обратите внимание, что на docs :

Объекты подключения могут использоваться в качестве менеджеров контекста, которые автоматически совершают транзакции или откатываются. В случае исключения транзакция откатывается; в противном случае транзакция совершается:

blockquote>

Поэтому, если вы используете оператор with-statement следующим образом:

with sqlite3.connect('AssetBrowser.db') as conn:
    createTable()
    insert()
    printAll()

, транзакция автоматически будет передана вам, когда Python оставляет with-statement в предположении, что нет ошибки, которая вызывает исключение.


Кстати, если вы используете CREATE TABLE IF NOT EXISTS , тогда таблица будет только если он еще не существует. Сделано так, вам не нужно комментировать createTable после вызова его один раз.

def createTable():
    conn.execute('''CREATE TABLE IF NOT EXISTS VideoFile
           (ID INTEGER PRIMARY KEY NULL,
           FileName           TEXT    NOT NULL,
           FilePath           TEXT    NOT NULL,
           numOfFrames            INT     NOT NULL,
           FPS            INT     NOT NULL,
           Tags           TEXT    NOT NULL,
           Voting         REAL);''')

15
задан Maarten Bodewes 8 April 2015 в 21:49
поделиться