У меня есть два сценария, один на Python и один на C ++, для чтения и записи из одной и той же таблицы в SQLite.
У меня два вопроса о том, как обрабатывать параллелизм:
Во время записи, если таблица в данный момент занята (что-то еще записывается), sqlite_exec()
в C ++ возвращает код ошибки (5).Похоже, что в python это недоступно, поэтому мне интересно: что происходит, когда python commit()
в то время как другой скрипт пишет?В C ++ это просто продолжало бы работать.Есть ли способ узнать, что commit () не работал должным образом?
Мой (действительно неэффективный) обходной путь в C ++ - продолжать проверять результаты sqlite_exec()
, и если этовозвращает 5 (занято) я пишу снова.Есть ли более эффективный способ сделать это, чтобы избежать проверки результата в цикле, пока UPDATE не вернет правильный результат?