sqlite

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
alaken
постоялец
Сообщения: 221
Зарегистрирован: 18.02.2010 08:02:13

sqlite

Сообщение alaken »

Проблема с сохранением данных в базу sqlite3. Вроде считывать считывает но не сохраняет в базу данных, может я не так им пользуюсь?

Код: Выделить всё

Sqlite3Dataset1: TSqlite3Dataset;
...
 if
   DM.Sqlite3Dataset1.Locate('key', 'Sourname',[loCaseInsensitive])
 then
 begin
   DM.Sqlite3Dataset1.Edit;
   DM.Sqlite3Dataset1.FieldByName('Value').AsString := Edit2.Text;
   DM.Sqlite3Dataset1.Post;
 end;

 DM.Sqlite3Dataset1.ApplyUpdates;


пример:
SQLite3Test.7z
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Ism
энтузиаст
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Сообщение Ism »

Нужно настроить работу с транзакциями, в лазарусовских компонентах нужно явно делать коммит.
Пример базы sqlite http://code.google.com/p/besbashstat/so ... vn%2Ftrunk
alaken
постоялец
Сообщения: 221
Зарегистрирован: 18.02.2010 08:02:13

Сообщение alaken »

пощупать не удалось, проект по ссылке для линукса...
есть рабочий пример для винды?

Добавлено спустя 10 минут 39 секунд:
в принципе разобрался, исправил проект, действительно работает.
SQLite3Test.7z


так я тоже пробовал но проект вылетал с ошибкой, что база занята... видимо менеджер базы монопольно открывает базу на запись.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Padre_Mortius
энтузиаст
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Сообщение Padre_Mortius »

так я тоже пробовал но проект вылетал с ошибкой, что база занята... видимо менеджер базы монопольно открывает базу на запись.

При таком обращении вы блокируете полностью таблицу, для того, чтобы такой ошибки не было нужно использовать транзакции и SQL-запросы
Ответить