У меня есть приложение Djanjo, которое позволяет пользователям вводить данные, которые отправляются в базу данных.
Доступ к этой базе данных немедленно осуществляется через скрипты Python, запущенные на том же компьютере.
Моя проблема в том, что если шаг 4 выполняется сразу после шага 3, запрос получает не последние данные, введенные пользователем, а предыдущие данные, уже хранящиеся в базе данных.
Если пользователь нажмет кнопку через 30 секунд, запрос будет выполнен успешно.
Мой код для получения последних данных из базы данных:
conn = sqlite3.connect('Line3_Data.db')
c = conn.cursor()
c.execute("SELECT tact FROM LineOEE03 ORDER BY tact desc limit 1")
current_tact = c.fetchone()
tact
-----------------
45 <- old value retrieved
60 <- new value from step 3 not retrieved
60 <- new value from step 3 not retrieved
Есть ли способ обновить соединение, чтобы убедиться, что извлекаются только самые последние значения?
Запись в базу данных происходит очень быстро. Это сразу видно при обновлении sqlitebrowser. После обновления sqlitebrowser и проверки того, что запись произошла, старое значение по-прежнему извлекается.
Чтобы прочитать новое значение, нужно пройти около 30 секунд.
Отредактирую вопрос, чтобы уточнить. Я сразу вижу запись, используя sqlitebrowser. Он сразу же регистрируется.






Выполнение conn.commit() перед чтением должно обновить сеанс подключения. Затем вы увидите последний статус данных.
Спасибо! Я упустил из виду что-то столь важное !!
Это легко забыть для чтения ... Вы также можете открыть настройку соединения autocommit = True, если это соответствует вашим потребностям. Удачи
Я бы посмотрел на
write, а не наread. Вы сделали запись?