Помогите разобраться в приложений с SQLite?

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

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

Помогите разобраться в приложений с SQLite?

Сообщение McLion » 22.07.2015 13:06:02

Всем привет,

хочу научиться работать с БД и написал маленькую прогу. Так вроде все получилось, только не получается добавлять, редактировать и удалять записи.
Насколько я понимаю надо прописывать соответствующие команды в InsertSQL, UpdateSQL и DeleteSQL.

Не подскажите, что там прописать?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
McLion
постоялец
 
Сообщения: 332
Зарегистрирован: 06.02.2015 18:41:00

Re: Помогите разобраться в приложений с SQLite?

Сообщение Снег Север » 22.07.2015 13:22:50

Смотря какие компоненты вы используете. А вообще-то про SQLite на форуме писалось много раз, воспользуйтесь поиском.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 3053
Зарегистрирован: 27.11.2007 16:14:47

Re: Помогите разобраться в приложений с SQLite?

Сообщение McLion » 22.07.2015 13:31:48

Снег Север писал(а):Смотря какие компоненты вы используете. А вообще-то про SQLite на форуме писалось много раз, воспользуйтесь поиском.


SQLite3Connection1 -> SQLTransaction1 -> SQLQuery1 -> DataSource1 -> (DBGrid1 + DBNavigator1 + DBEdit1)

Все родное.

Да я уже все переискал, до того и дошел, что на скрине... дальше нужна помощь.
Аватара пользователя
McLion
постоялец
 
Сообщения: 332
Зарегистрирован: 06.02.2015 18:41:00

Re: Помогите разобраться в приложений с SQLite?

Сообщение Снег Север » 22.07.2015 14:21:43

Если у вас в SQLQuery1 стоит типа 'select * from tabel1' и для всех DB компонентов используется один и тот же DataSource1, то можно редактировать и добавлять по кнопкам навигатора, всё должно срабатывать автоматически.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 3053
Зарегистрирован: 27.11.2007 16:14:47

Re: Помогите разобраться в приложений с SQLite?

Сообщение McLion » 22.07.2015 14:53:07

По идей да, но ... вот добавляю в DBGrid запись, нажимаю на галочку, вроде все ок. Прогу закрываю, открываю но ничего нет. А если что то в DBGrid записать, нажать на галочку и потом на Refresh - выдает ошибку
Must apply updates before refreshing data
Аватара пользователя
McLion
постоялец
 
Сообщения: 332
Зарегистрирован: 06.02.2015 18:41:00

Re: Помогите разобраться в приложений с SQLite?

Сообщение Vadim » 22.07.2015 15:22:05

McLion писал(а):...вот добавляю в DBGrid запись, нажимаю на галочку, вроде все ок. Прогу закрываю, открываю но ничего нет.

Надо перед закрытием проги (или перед закрытием SQLQuery1) написать:
Код: Выделить всё
SQLQuery1.ApplyUpdates;

чтобы добавленные в SQLQuery1 данные перенести в саму базу данных, которая на диске.

Добавлено спустя 2 минуты 2 секунды:
McLion писал(а):Must apply updates before refreshing data

А здесь, соответственно, сделать
Код: Выделить всё
SQLQuery1.ApplyUpdates;

перед Refresh, потому что Refresh заново считывает данные (добавленные) из файла БД.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Помогите разобраться в приложений с SQLite?

Сообщение Снег Север » 22.07.2015 15:27:57

Включите у SQLQuery1 в Options свойство sqoAutoApplyUpdates в true. И тогда программа сама сделает то, что написал товарищ постом выше.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 3053
Зарегистрирован: 27.11.2007 16:14:47

Re: Помогите разобраться в приложений с SQLite?

Сообщение McLion » 22.07.2015 15:43:59

Снег Север писал(а):Включите у SQLQuery1 в Options свойство sqoAutoApplyUpdates в true. И тогда программа сама сделает то, что написал товарищ постом выше.


Прости за банальность, но не нахожу Options...
Аватара пользователя
McLion
постоялец
 
Сообщения: 332
Зарегистрирован: 06.02.2015 18:41:00

Re: Помогите разобраться в приложений с SQLite?

Сообщение Снег Север » 22.07.2015 15:47:44

McLion писал(а):Прости за банальность, но не нахожу Options...
Как это? В инспекторе объектов, сразу ниже Name. Еще не встречал такого, чтобы не было... :?
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 3053
Зарегистрирован: 27.11.2007 16:14:47

Re: Помогите разобраться в приложений с SQLite?

Сообщение McLion » 22.07.2015 15:51:26

Снег Север писал(а):
McLion писал(а):Прости за банальность, но не нахожу Options...
Как это? В инспекторе объектов, сразу ниже Name. Еще не встречал такого, чтобы не было... :?


Я загрузил скриншот... нету его, или я слепой.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
McLion
постоялец
 
Сообщения: 332
Зарегистрирован: 06.02.2015 18:41:00

Re: Помогите разобраться в приложений с SQLite?

Сообщение Vadim » 22.07.2015 15:53:47

Снег Север писал(а):В инспекторе объектов, сразу ниже Name. Еще не встречал такого, чтобы не было...

Вы не поверите, но у меня такого тоже нету. И именно в инспекторе объектов. Может быть Вы имели в виду ZQuery? ;-)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Помогите разобраться в приложений с SQLite?

Сообщение Снег Север » 22.07.2015 15:56:19

Может, у меня версия свежее в СТ?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 3053
Зарегистрирован: 27.11.2007 16:14:47

Re: Помогите разобраться в приложений с SQLite?

Сообщение Vadim » 22.07.2015 15:56:55

McLion
Можно это дело в событие AfterPost засунуть, если только Вам не надо вносить данные с ужасающей быстротой.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Помогите разобраться в приложений с SQLite?

Сообщение McLion » 22.07.2015 15:57:45

Vadim писал(а):Надо перед закрытием проги (или перед закрытием SQLQuery1) написать:
Код: Выделить всё
SQLQuery1.ApplyUpdates;

чтобы добавленные в SQLQuery1 данные перенести в саму базу данных, которая на диске.



Ни хочу дураком казаться, но не помогает... вот что я сделал:

Код: Выделить всё
procedure TForm1.Button1Click(Sender: TObject);
begin
  SQLQuery1.ApplyUpdates;
end;
Аватара пользователя
McLion
постоялец
 
Сообщения: 332
Зарегистрирован: 06.02.2015 18:41:00

Re: Помогите разобраться в приложений с SQLite?

Сообщение Vadim » 22.07.2015 15:59:01

Снег Север писал(а):Может, у меня версия свежее в СТ?

Не исключено. У меня мартовская - 48187.

Добавлено спустя 2 минуты 16 секунд:
McLion писал(а):но не помогает

А Post предварительно Вы не забыли сделать?
Ещё вариант - поставьте TSQLTransaction.Action в caCommit.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 213

Рейтинг@Mail.ru