|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
Dima TВозможно проблема совсем в другом, например обращение к БД происходит до открытия БД. Ошибка какая в err ? Точно, что после открытия БД. err - не знаю. Try...catch надо ставить, а как и куда err вытащить неизвестно. Само приложение пишет, что не определен указатель - а единственный указатель, это и есть sqlite3 *db - сейчас не могу посмотреть в оригинале. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 13:44 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBATry...catch надо ставить, а как и куда err вытащить неизвестно.тяжелый случай. YUBAпишет, что не определен указатель Скрин сюда того где ОНО САМО пишет. YUBAсейчас не могу посмотреть в оригинале.вот когда будешь рядом с компом и продоложим. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 13:47 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBA, Найди место на самом вверху в ГУИ, где происходит mess про указатель. Потом в коде например buttonClick.... Оберни все это место try. Всё. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 13:52 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBADima TВозможно проблема совсем в другом, например обращение к БД происходит до открытия БД. Ошибка какая в err ? Точно, что после открытия БД. err - не знаю. Try...catch надо ставить, а как и куда err вытащить неизвестно. Само приложение пишет, что не определен указатель - а единственный указатель, это и есть sqlite3 *db - сейчас не могу посмотреть в оригинале. Не должно быть никаких исключений. Проверяй в начале Код: plaintext 1.
err тоже указатель, ты как его объявил? Пример обработки ошибок отсюда Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 14:03 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
Dima TНе должно быть никаких исключенийсама база не выдаёт каких нибудь. Data not found... /FK? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 14:28 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
PetroNotC SharpDima TНе должно быть никаких исключенийсама база не выдаёт каких нибудь. Data not found... /FK? Насколько понимаю для этого сделан возврат ошибок. Если не путаю, SQLite написана на C, а в C нет исключений, они в С++. Да и в документации ни слова про исключения. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 14:36 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
Dima T, Да. Они где то выше уровнем. Я по диагонали гугл глянул - андроид и т.д. Еще странно что про try автор первый сказал). ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 14:44 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
Dima T, да, понятно. Но это ДЛЛ - нет там ни консоли ни ГУИ. Куда я stdout? Пока все штатно, я могу в приложение текст возвратить, и оно выведет (открытие БД, в частности, и пр. - это все сделано). В данном случае до текста не доходит, и выбрасывается - не определен указатель - это поток приложения пишет, до err дело не доходит. Даже на err= sqlite3_prepare_v2(db, "begin;", 10, &ppStmt, &tail); Если оставить обе функции, то одна пишет в БД, вторая исключение дает. ДЛЛ продолжает исполняться. И получаем вывод типа: ОК, не опр ук-тель, не опр ук-тель, не опр ук-тель, не опр ук-тель, ОК. Функции уже просто идентичны. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 14:47 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBAНо это ДЛЛ - нет там ни консоли ни ГУИ. Куда я stdout?в лог файл все пишут. YUBAмогу в приложение текст возвратить,наверно сначала вызов самой длл идет? Вот там stdout есть и перехват exception есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 14:56 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBADima T, да, понятно. Но это ДЛЛ - нет там ни консоли ни ГУИ. Куда я stdout? В файл тоже нельзя писать? Навтыкай записей после каждой строки, пиши все подряд, что вызываешь, какие значения параметров. fflush() не забывай вызывать. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 15:01 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
PetroNotC Sharpнаверно сначала вызов самой длл идет? Вот там stdout есть и перехват exception есть. Вызов функций в ДЛЛ - все в норме. Вся работа с БД в классе, поток класс видит, все функции класса штатно исполняются, затык только на указателе sqlite3 *db; Может это имеет значение - поток в котором коннектится ДЛЛ и создается подключение к БД отсоединен (detach), и крутится в ДЛЛ в цикле. Через него вызываются доступные функции приложения. Остальные потоки - события приложения. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 15:18 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBAВызов функций в ДЛЛ - все в норме.мы это не видим. Если ГУИ стартануло поток, то он пройдет через 100 длл вызовов и вернется опять в ГУИ. YUBAМожет это имеет значениеимеет. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 15:31 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBAdetachесли есть тяжелые работы, то ТОЛЬКО ДЛЯ НИХ берется ОДИН ПОТОК НА РАБОТУ. Либо из пула, либо заготовить штук 20, либо при аттаче потока он сам берет коннект до конца работы. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 15:34 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBAОстальные потоки - события приложения.всё ГУИ это один основной поток. И все события в нем тоже. Итого у вас один основной и один дополнительный. Вот проверяйте это по логам с выводом id thread ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 15:38 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
PetroNotC SharpDima TНе должно быть никаких исключенийсама база не выдаёт каких нибудь. Data not found... /FK? Сама база, тем более sqlite , ничего не может выдавать ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 15:39 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
Ролг Хупин, Вау! Шарпист по теме слово сказал) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 15:41 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBA, Возможно у вас основной полез в доп.поток или наоборот. Напрямую они лезть не должны. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 15:42 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
PetroNotC Sharpесли есть тяжелые работы, то ТОЛЬКО ДЛЯ НИХ берется ОДИН ПОТОК НА РАБОТУ. Либо из пула, либо заготовить штук 20, либо при аттаче потока он сам берет коннект до конца работы. Детач поток выдается нам приложением для подключения ДЛЛ, конфигурации и пр. Завершение этого потока - эквивалентна отключению ДЛЛ от приложения. Его надо держать до конца работы с ДЛЛ. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 15:46 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
PetroNotC SharpРолг Хупин, Вау! Шарпист по теме слово сказал) П. да, ты сказал слово Фильм "Сережа", 1960 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 15:53 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBAPetroNotC Sharpесли есть тяжелые работы, то ТОЛЬКО ДЛЯ НИХ берется ОДИН ПОТОК НА РАБОТУ. Либо из пула, либо заготовить штук 20, либо при аттаче потока он сам берет коннект до конца работы. Детач поток выдается нам приложением для подключения ДЛЛ, конфигурации и пр. Завершение этого потока - эквивалентна отключению ДЛЛ от приложения. Его надо держать до конца работы с ДЛЛ.тут не знаю. Смотрите логи как выше сказал на вызов перекрестный. Будет райзе, либо ваша ошибка. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 15:54 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBAДетач поток выдается нам приложением для подключения ДЛЛ, конфигурации и пр. Завершение этого потока - эквивалентна отключению ДЛЛ от приложения. Ага, вот она, базовая ошибка архитектуры, приводящая к гонкам потоков и обращению к ещё не инициализированным объектам. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 17:43 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovАга, вот она, базовая ошибка архитектуры, приводящая к гонкам потоков и обращению к ещё не инициализированным объектам. Ерунда, все инициализировано. Никаких ага.) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 17:54 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Даже цели этого действа не прнимаю. У нас, что, из экзешника нельзя поток создать и внутри. длл вызвать? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 18:09 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
YUBADimitry SibiryakovАга, вот она, базовая ошибка архитектуры, приводящая к гонкам потоков и обращению к ещё не инициализированным объектам. Ерунда, все инициализировано. Никаких ага.)а что за ошибку тогда обсуждаем? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 18:09 |
|
Sqlite в многопоточной программе.
|
|||
---|---|---|---|
#18+
PetroNotC Sharpа что за ошибку тогда обсуждаем? почитайте тему с начала, повторяться не буду. И кто сказал, что где-то ошибка? Здесь надо не ошибку искать, а думать, как писать в БД через одно соединение из разных потоков. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 18:17 |
|
|
start [/forum/topic.php?fid=57&msg=39841559&tid=2017590]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 156ms |
0 / 0 |