![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
STRATEG_lLTY |
![]()
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 7 Регистрация: 21.7.2014 Пользователь №: 4192 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Использую QT4 и вот такое подключение к бд
Проблема в следующем, какие бы манипуляции с бд не осуществлялись, файл перезаписывается только после выключения программы мне же необходимо, что бы это происходило сразу, так как устройство будет отключаться путём его обесточивания. Подскажите как это сделать. |
|
|
lanz |
![]()
Сообщение
#2
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
Попробуйте использовать transaction() и commit()
http://qt-project.org/doc/qt-4.8/qsqldatab...tml#transaction |
|
|
STRATEG_lLTY |
![]()
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 7 Регистрация: 21.7.2014 Пользователь №: 4192 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
lanz |
![]()
Сообщение
#4
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
Цитата Но мне не нужны тразакции, мне надо от них избавиться. Зачем? Цитата Если я вызываю commit он постоянно выдаёт false и ясное дело проблему это не решает. Конечно, если вы не начали транзакцию он вернет false. Здесь описывается что такое транзакция: http://www.tutorialspoint.com/sqlite/sqlite_transactions.htm нам важно свойство Цитата Durability: ensures that the result or effect of a committed transaction persists in case of a system failure. Почитайте еще вот это: https://www.sqlite.org/atomiccommit.html И вот это: https://www.sqlite.org/wal.html |
|
|
STRATEG_lLTY |
![]()
Сообщение
#5
|
Новичок Группа: Новичок Сообщений: 7 Регистрация: 21.7.2014 Пользователь №: 4192 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Что такое транзакция мне известно.
Проблема в том, что на конечном устройстве база данных не сохраняется сразу, а только после завершения(правильного) приложения. А по ходу работы программа создаёт файл (название моей базы данных)-(сейчас не вспомню что именно, уточню на работе), например DB-(приписка). Как я думал, это и есть файл транзакций, но мною они в явном виде не включались. |
|
|
lanz |
![]()
Сообщение
#6
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
Это файл журнала. Если вы читали ссылки, кторые я прислал то знаете что файл журнала удаляется после успешной транзакции.
Вам нужно 1. Начать транзакцию 2. Выполнить коммит Эти два действия гарантируют, что ваши данные записаны в БД на физическом носителе. |
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 16.2.2025, 16:03 |