Russian Qt Forum
Май 01, 2024, 10:44 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Переключить SQLite в режим журналирования WAL  (Прочитано 10172 раз)
Примерный ученик
Бывалый
*****
Offline Offline

Сообщений: 450


И это не всегда помогает


Просмотр профиля
« : Ноябрь 08, 2013, 14:43 »

QT4.6 SQLite 3.

PRAGMA journal_mode = WAL

не срабатывает.
Что надо сделать?
Записан

Как мало времени и как много нужно узнать
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #1 : Ноябрь 09, 2013, 16:39 »

http://master.qt-project.org/archive/qt/4.6/qt-everywhere-opensource-src-4.6.4.zip
Qt 4.6.4 => SQLite version 3.6.19.

http://sqlite.org/pragma.html#pragma_journal_mode
Цитировать
A database in WAL journaling mode can only be accessed by SQLite version 3.7.0 or later.

Так что либо версию Qt брать новее, или плагин SQLite пересобирать с более свежей версией или забить на WAL.
Записан
Примерный ученик
Бывалый
*****
Offline Offline

Сообщений: 450


И это не всегда помогает


Просмотр профиля
« Ответ #2 : Ноябрь 09, 2013, 17:12 »

спасибо. Гляну в эту сторону
Записан

Как мало времени и как много нужно узнать
Примерный ученик
Бывалый
*****
Offline Offline

Сообщений: 450


И это не всегда помогает


Просмотр профиля
« Ответ #3 : Ноябрь 13, 2013, 09:56 »

А как узнать версию SQLite с которой собран драйвер?
Записан

Как мало времени и как много нужно узнать
Примерный ученик
Бывалый
*****
Offline Offline

Сообщений: 450


И это не всегда помогает


Просмотр профиля
« Ответ #4 : Ноябрь 13, 2013, 11:13 »

И еще вопрос:

из под SQLite Administrator

Код:
pragma journal_mode = TRUNCATE

выполняется успешно, то из программы

Код:
sql.exec("PRAGMA journal_mode = TRUNCATE")

не срабатывает Непонимающий
Записан

Как мало времени и как много нужно узнать
Примерный ученик
Бывалый
*****
Offline Offline

Сообщений: 450


И это не всегда помогает


Просмотр профиля
« Ответ #5 : Ноябрь 14, 2013, 09:36 »

#define SQLITE_VERSION        "3.6.19"

это из QT4.7.4 для VC2008.
Но никак не переключается, только вариант delete и все Непонимающий
Записан

Как мало времени и как много нужно узнать
Примерный ученик
Бывалый
*****
Offline Offline

Сообщений: 450


И это не всегда помогает


Просмотр профиля
« Ответ #6 : Ноябрь 14, 2013, 09:44 »

Код:
  /*
  **  PRAGMA [database.]journal_mode
  **  PRAGMA [database.]journal_mode = (delete|persist|off|truncate|memory)
  */
  if( sqlite3StrICmp(zLeft,"journal_mode")==0 ){
    int eMode;
    static char * const azModeName[] = {
      "delete", "persist", "off", "truncate", "memory"
    };

Похоже, нет режима WAL в этом драйвере
Записан

Как мало времени и как много нужно узнать
Примерный ученик
Бывалый
*****
Offline Offline

Сообщений: 450


И это не всегда помогает


Просмотр профиля
« Ответ #7 : Ноябрь 14, 2013, 10:28 »

в 4.8.5 уже нормальная версия драйвера с поддержкой WAL.
Буду пробовать.
Записан

Как мало времени и как много нужно узнать
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #8 : Ноябрь 14, 2013, 13:37 »

Похоже, нет режима WAL в этом драйвере

Тебе же написали, что он добавлен начиная с версии 3.7, а у тебя 3.6
Записан
Примерный ученик
Бывалый
*****
Offline Offline

Сообщений: 450


И это не всегда помогает


Просмотр профиля
« Ответ #9 : Ноябрь 14, 2013, 15:50 »

я это понял. Но не происходит и переключения на допустимые варианты, кроме режима delete.
С эти как бороться?
Записан

Как мало времени и как много нужно узнать
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.117 секунд. Запросов: 22.