Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 6, 2018 07:33:29

MaratD
Зарегистрирован: 2016-01-25
Сообщения: 138
Репутация: +  0  -
Профиль   Отправить e-mail  

sqlite, запросы

Здравствуйте.
Если в запросе на изменение данных (вставка, обновление записей) в базе использовать конструкцию

 try:
    c = MainWindow.conn.cursor()
    c.execute('BEGIN EXCLUSIVE TRANSACTION')
    c.execute('UPDATE...') 
    c.execute('INSERT...')
    c.execute('COMMIT TRANSACTION')
except:
    c.execute('ROLLBACK TRANSACTION')
то нужно ли в самих командах вставки и обновления использовать алгоритм “OR ROLLBACK”. То есть так
     c.execute('UPDATE OR ROLLBACK ...')
    c.execute('INSERT OR ROLLBACK ...')
При возникновении ошибки изменение и так не сохранится же. Примеров поясняющих не нашел. Помогите пожалуйста. Спасибо.

Офлайн

#2 Июнь 7, 2018 10:33:44

spikejke
Зарегистрирован: 2018-02-12
Сообщения: 42
Репутация: +  5  -
Профиль   Отправить e-mail  

sqlite, запросы

Почему Вы не используете доступные методы для commit'a и rollback'a ?

  try:
    c = MainWindow.conn.cursor()
    c.execute('BEGIN EXCLUSIVE TRANSACTION')
    c.execute('UPDATE...') 
    c.execute('INSERT...')
    c.commit()
except:
    c.rollback()

Отредактировано spikejke (Июнь 7, 2018 10:34:08)

Офлайн

#3 Июнь 7, 2018 13:53:49

MaratD
Зарегистрирован: 2016-01-25
Сообщения: 138
Репутация: +  0  -
Профиль   Отправить e-mail  

sqlite, запросы

Здравствуйте.
Просто для меня так более наглядно. Это же не считается ошибкой?
Про эти rollbackи не совсем понятно. Во время явного указания начала транзакции они кажется бесполезны в самих командах.

Офлайн

#4 Июнь 7, 2018 14:30:16

spikejke
Зарегистрирован: 2018-02-12
Сообщения: 42
Репутация: +  5  -
Профиль   Отправить e-mail  

sqlite, запросы

MaratD
Здравствуйте.Просто для меня так более наглядно. Это же не считается ошибкой?Про эти rollbackи не совсем понятно. Во время явного указания начала транзакции они кажется бесполезны в самих командах.
Опишите точно задачу, пожалуйста.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version