Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Разработка баз данных _ Проблема с sqlite

Автор: Rocky 25.11.2009, 20:53

Всем привет!

Седня обнаружил такую вещь: при изменении существющих данных в базе sqlite (неважно в своей программе, или через sqlbrowser), сохраняю (через submit), потом таблица обновляется, но все данные что я вносил - теряются и я вижу исходную таблицу (базу)... Как с этим можно побороться? В тоже время, если добавить строку и внести какие-то данные - все ок. Если потом после сохранения попытаться их изменить - ни фига... Не работает также и удаление строк... В чем может быть проблема? Может быть из-за того что в одном файле несколько таблиц (штук 7) и некоторые из них большие (одна до 24к записей)?

Спасибо!

Автор: Litkevich Yuriy 25.11.2009, 22:35

через sqlbrowser ты как изменяешь, прямо в таблице или через запрос?

Автор: Rocky 25.11.2009, 23:05

прямо в таблице

Автор: nZil 26.11.2009, 0:20

От количества таблиц не зависит 100%. У меня было 15 и ничего.

Автор: Litkevich Yuriy 26.11.2009, 0:45

Цитата(Rocky @ 25.11.2009, 23:53) *
некоторые из них большие (одна до 24к записей)
это надо по документации проверить, может есть ограничения. Если конечно нет ограничений на вводимые значения (хотя при этом должна возникать ошибка)

Автор: Elfinit 26.11.2009, 9:04

КОгда у меня возникла проблема "сбрасывания" дынных, похожая на эту (например, программа аварийно завершалась, не закрыв корректно соединение), решил её запретом журналирования, т.е. выполнением:

PRAGMA journal_mode = off;

Эту штуку надо выполнять при каждом соединении с базой (запуск программы, открытие sqlbrowser), т.к. она сбрасывается на значение по умолчанию.
Так же до кучи делаю:

PRAGMA synchronous = off;

А ещё почитай вот тут:
http://web.utk.edu/~jplyon/sqlite/SQLite_optimization_FAQ.html

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)