1 | |
SQLite Блокровка/разблокировка05.07.2013, 22:09. Показов 3074. Ответов 18
Метки нет (Все метки)
Есть код: таймер периодически создает/запускает поток, поток получает данные ( через интернет) открывает БД (sqlite3_open() ) и добавляет туда новые данные закрывает БД ( sqlite3_close(db); ) поток завершается.
При первом создании потока все проходит нормально данные вставляются ошибок- нет, при втором при попытке выполнить INSERT пишет что база блокирована, данные не занеслись. Период между созданиями потоком значительный, так что первый поток успевает завершится до создания второго. Вопрос : как правильно закрыть БД что бы она разблокировалась ? Или что могло повлиять на такую работу ?
0
|
05.07.2013, 22:09 | |
Ответы с готовыми решениями:
18
Одновременная блокировка/разблокировка функционала программы Блокировка/разблокировка клавиши впоследствии нажатия комбинации клавиш Sqlite в c++ под linux, как правильно подключить sqlite? События сессии пользователя (вход/выход/блокировка/разблокировка/сон/выход из сна/выключение/перезапуск) |
05.07.2013, 23:16 [ТС] | 3 | |||||||||||||||
Возвращает :
Что-то не могу понять где ошибка Код класса обвертки ( код С++Builder) Кликните здесь для просмотра всего текста
Кликните здесь для просмотра всего текста
Добавлено через 5 минут Вроде нашел ошибку в методе Exists забыл выполнить sqlite3_finalize()
0
|
Заблокирован
|
|
06.07.2013, 00:32 | 8 |
Напрямую sql в sqlite3_exec, но опять же это только для обучения важно пройти. CALLBACK в sqlite нафиг не нужен на мой взгляд, не те масштабы чтобы так издеваться над файловой БД, но тут мало ли для чего пригодится, ты callback правильный фактически в нормальном виде на размере данных небольшом и не увидишь нормально, максимум 1-2 раза, но тут уже я не работал с этим почти, весь смысл sqlite - быстрая локальная небольшая база, а по правильному - ещё и memtable, это его основное назначение.
0
|
Заблокирован
|
|
06.07.2013, 00:41 | 10 |
К тому, что там prepare/exec не нужен по сути. Prepared Statements для скорости и автоматизации escaping'a нужны.
http://stackoverflow.com/quest... erformance
0
|
06.07.2013, 16:15 | 13 | |||||
Я делаю так:
Пример результата запроса "SELECT * FROM my_table" уже созданной БД:
0
|
06.07.2013, 16:25 [ТС] | 16 | |||||
0
|
06.07.2013, 16:30 | 17 |
Колонки и столбцы в запросе.
Я не специалист по БД но представляю себе это так: 1. Например, есть БД, в ней таблица, в ней 3 столбца ( id, name, age ). 2. Мне нужно заполнить массив именами (name). 3. Делаем запрос: "SELECT name FROM my_table" 4. callback выдает тебе список имен (argv[i] - одно имя), ты их заносишь. Что я сказал не так?
1
|
06.07.2013, 16:39 [ТС] | 18 |
Зайду иначе ..
Имеем вывод Блин написал пост, и само дошло что calback может вызываться несколько раз при выполнении одного запроса. .... на то он и колбек...
0
|
06.07.2013, 16:44 | 19 | |||||
1
|
06.07.2013, 16:44 | |
06.07.2013, 16:44 | |
Помогаю со студенческими работами здесь
19
Как написать формулы в sqlite или отказаться от использования sqlite вовсе Файл cookies.sqlite не sqlite на самом деле, или как его открыть Редактирование связанных объектов через EF в SQLite, C#, EF 6.2, SQLite, C# Winforms SQLite for Excel или как выгрузить данные в SQLite SQLite не найден SQLite.Interop,dll Разблокировка Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |