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

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

Страниц: 1 2 [3] 4   Вниз
  Печать  
Автор Тема: Работа в SQLite в многопоточном приложении  (Прочитано 28497 раз)
rudireg
Гость
« Ответ #30 : Декабрь 12, 2016, 18:55 »

УМВР - У Меня Все Работает. С гуглом надо дружить, камрад. Улыбающийся
Я собрал и запустил - ни одной ошибки в консоль не выдало.
а запускали несколько раз? нужно раз 6 или 7.... она не сразу вылетает
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #31 : Декабрь 12, 2016, 19:00 »

Раз 10 подряд запустил. Ни одного вылета. Linux.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
rudireg
Гость
« Ответ #32 : Декабрь 12, 2016, 19:01 »

Раз 10 подряд запустил. Ни одного вылета. Linux.
а можете скинуть проект ваш сюда? Я у себя запущу
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #33 : Декабрь 12, 2016, 19:02 »

Я твой проект запускаю.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
panAlexey
Гипер активный житель
*****
Offline Offline

Сообщений: 864

Акцио ЗАРПЛАТА!!!!! :(


Просмотр профиля
« Ответ #34 : Декабрь 12, 2016, 19:02 »

А как насчет Firebird или Линтер?
Линтер это postgresql, с дополнительными плюшками для разграничения доступа.
Это вы про линтер-ВС. А чистый линтер там немного другое.
Записан

Win Xp SP-2, Qt4.3.4/MinGW. http://trdm.1gb.ru/
rudireg
Гость
« Ответ #35 : Декабрь 12, 2016, 19:21 »

Я твой проект запускаю.
Странно.
Я только что записал видео и загрузил на ютуб где у меня вылазит ошибка.
https://www.youtube.com/watch?v=B0rrqNw2gxY
Может у нас сборки разные.... слышал что если собирать Qt  из сорцов, то там можно выставлять режим работы SQLite
Низнаю как у вас, я тупо скачивал инсталятор и устанавливал Qt 5.5  MSVC 2012
Записан
panAlexey
Гипер активный житель
*****
Offline Offline

Сообщений: 864

Акцио ЗАРПЛАТА!!!!! :(


Просмотр профиля
« Ответ #36 : Декабрь 12, 2016, 19:28 »

Есть пример asyncdb у Земскова.
https://yadi.sk/d/oNC_269533FSDb
Записан

Win Xp SP-2, Qt4.3.4/MinGW. http://trdm.1gb.ru/
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #37 : Декабрь 12, 2016, 19:32 »

Вы стектрейс получили? Вам уже 2 способа сказали.
Записан
rudireg
Гость
« Ответ #38 : Декабрь 12, 2016, 19:55 »

Вы стектрейс получили? Вам уже 2 способа сказали.
А как сделайть стектрейс?
определить переменную  QT_FATAL_WARNINGS Непонимающий
например так в файле main.cpp ?
#define QT_FATAL_WARNINGS 1
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #39 : Декабрь 12, 2016, 20:09 »

В настройках отладчика в Креаторе есть галочка останова при ворнингах.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
rudireg
Гость
« Ответ #40 : Декабрь 12, 2016, 20:17 »

В настройках отладчика в Креаторе есть галочка останова при ворнингах.
Пставил остановку на ворнингах
тут останавливается
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE", this->nameConnect);  

попробую покавыряю проект что выше дали..
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #41 : Декабрь 12, 2016, 20:20 »

А с одним тредом падает?
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
rudireg
Гость
« Ответ #42 : Декабрь 12, 2016, 20:21 »

А с одним тредом падает?
с одним тредом нету ворнинга...
тока если 2 одновременно
надо как то проверить в каком режиме SQLite

http://www.sqlite.org/threadsafe.html
1) Single-thread. In this mode, all mutexes are disabled and SQLite is unsafe to use in more than a single thread at once.
2) Multi-thread. In this mode, SQLite can be safely used by multiple threads provided that no single database connection is used simultaneously in two or more threads.
3) Serialized. In serialized mode, SQLite can be safely used by multiple threads with no restriction.
« Последнее редактирование: Декабрь 12, 2016, 20:25 от rudireg » Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #43 : Декабрь 12, 2016, 20:28 »

А попробуй статический мютекс объявить в методе DataBase::init и залочить его.
Код
C++ (Qt)
bool DataBase::init(...)
{
  static QMutex mutex;
  QMutexLocker locker (&mutex);
 
 ..............
}
 
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
rudireg
Гость
« Ответ #44 : Декабрь 12, 2016, 20:35 »

А попробуй статический мютекс объявить в методе DataBase::init и залочить его.
Код
C++ (Qt)
bool DataBase::init(...)
{
  static QMutex mutex;
  QMutexLocker locker (&mutex);
 
 ..............
}
 

так нету ворнинга.... хммм....
почему у вас без мьютекса нету ворнинга а у меня есть... черт разберешь, а вот с мьютексом все ок
Записан
Страниц: 1 2 [3] 4   Вверх
  Печать  
 
Перейти в:  


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