Помогите разобраться в приложений с SQLite?
Модератор: Модераторы
Тоже не помогает... тут можно проект скачать -> https://yadi.sk/d/UjclTK0Ai2dRp
Если б кто то глянул, отблагодарю ка смогу!
Если б кто то глянул, отблагодарю ка смогу!
- Снег Север
- долгожитель
- Сообщения: 3071
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
В AfterPost надо делать ApplyUpdates, раз нет Options. И хорошо еще добавить Transaction1.CommitRetaining.McLion писал(а):но не помогает
Добавлено спустя 15 минут 39 секунд:
Добавил у вас
Код: Выделить всё
procedure TForm1.FormCreate(Sender: TObject);
begin
SQLiteLibraryName := 'sqlite3.dll';
SQLite3Connection1.Connected := true;
if SQLite3Connection1.Connected then
SQLQuery1.Open;
end; и у SQLTransaction1 поменял Action на caCommitRetaining - всё работает как надо...
Прикольно, а у меня нет.... хотя сделал все тоже самое...
Добавлено спустя 6 минут 15 секунд:
Блиииииииииин походу разобрался, я ID задавал, вот и не шло. ID не задаешь и все идет... с ума сойти можно.
Добавлено спустя 6 минут 15 секунд:
Блиииииииииин походу разобрался, я ID задавал, вот и не шло. ID не задаешь и все идет... с ума сойти можно.
- Снег Север
- долгожитель
- Сообщения: 3071
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
посмотрите мой вариант
https://onedrive.live.com/redir?resid=5 ... file%2czip
если у вас всё равно не работает, то попробуйте поставить у себя тоже CodeTyphon
Добавлено спустя 4 минуты 8 секунд:
https://onedrive.live.com/redir?resid=5 ... file%2czip
если у вас всё равно не работает, то попробуйте поставить у себя тоже CodeTyphon
Добавлено спустя 4 минуты 8 секунд:
У вас же id описано как автоинкрементное - конечно, его нельзя задавать самому.McLion писал(а):я ID задавал, вот и не шло. ID не задаешь и все идет... с ума сойти можно
После перезагрузки Lazarus сново ничего не пашет.... короче этот Lazarus все чепуха...
Снег Север писал(а):конечно, его нельзя задавать самому.
Я, ради эксперимента, зада ID ничего не меняя в коде - идёт, да ещё и семечки щёлкает.
Единственное только - не стоит держать открытым соединение при разработке.
Добавлено спустя 2 минуты 47 секунд:
McLion писал(а):После перезагрузки Lazarus сново ничего не пашет.... короче этот Lazarus все чепуха...
Ну, если так рассуждать, то и вообще всё на свете чепуха. У меня, вон, кот посуду после себя не моет, так что же мне его теперь за дверь выставлять?
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
McLion, а может, дело не в Лазарусе?
Снег Север писал(а):посмотрите мой вариант
https://onedrive.live.com/redir?resid=5 ... file%2czip
если у вас всё равно не работает, то попробуйте поставить у себя тоже CodeTyphon
Добавлено спустя 4 минуты 8 секунд:У вас же id описано как автоинкрементное - конечно, его нельзя задавать самому.McLion писал(а):я ID задавал, вот и не шло. ID не задаешь и все идет... с ума сойти можно
Пасиб... сейчас сравню, буду искать ошибку.
Добавлено спустя 6 минут 46 секунд:
Отключил базу, подключил и все поехало сново... надежности никакой короче, одни игрушки.
CodeTyphon стабильнее в этом плане?
McLion писал(а):надежности никакой короче, одни игрушки.
Чисто для прикола: у меня на Лазарусе сделана программа поиска иностранных патентов. Работает с терабайтной базой MSSQL, как в винде так и в Linux без переделки кода. Скорость поиска, по сравнению с оригинальной программой (сделаной профессионалами-монополистами из "Иниц-патент") намного выше. Поиск патентов по одному и тому же (непростому
- Снег Север
- долгожитель
- Сообщения: 3071
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
McLion писал(а):CodeTyphon стабильнее в этом плане?
Там компоненты sqldb явно поновее. Но я рекомендую компоненты Zeos как более надежные. В CodeTyphon они уже инсталированы. И, по своему опыту, крайне рекомендую всегда включать и проверять коннекшн в рантайме.
Добавлено спустя 8 минут 45 секунд:
Vadim писал(а):Я, ради эксперимента, зада ID ничего не меняя в коде - идёт, да ещё и семечки щёлкает.
Насколько я знаю, крайне не рекомендуется задавать значения автоинкрементному полю вручную - может неожиданно выскочить черте что...
Vadim писал(а):McLion писал(а):надежности никакой короче, одни игрушки.
Чисто для прикола: у меня на Лазарусе сделана программа поиска иностранных патентов. Работает с терабайтной базой MSSQL, как в винде так и в Linux без переделки кода. Скорость поиска, по сравнению с оригинальной программой (сделаной профессионалами-монополистами из "Иниц-патент") намного выше. Поиск патентов по одному и тому же (непростому) условию у них идёт 6..10 минут, у меня же время поиска укладывается в рекоммендованные Коддом 15 секунд. Хороши игрушки, не правда ли?
У меня есть приложение, где я только ДБ компоненты на форму бросил а все остальное делаю только кодом, к обьектинспектору не дотрагиваюсь. Так вот там тоже все стабильно, но как начнешь в инспекторе что то переставлять - ужас дикий.
- Снег Север
- долгожитель
- Сообщения: 3071
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
McLion писал(а):Так вот там тоже все стабильно, но как начнешь в инспекторе что то переставлять - ужас дикий.
- Доктор, мне больно, когда я делаю - во-о-от так...
- Ну, так не делайте...
- Unvictis
- новенький
- Сообщения: 48
- Зарегистрирован: 17.07.2015 17:59:12
- Откуда: Kokshetau, Kazakshtan
- Контактная информация:
McLion писал(а):Всем привет,
хочу научиться работать с БД и написал маленькую прогу. Так вроде все получилось, только не получается добавлять, редактировать и удалять записи.
Насколько я понимаю надо прописывать соответствующие команды в InsertSQL, UpdateSQL и DeleteSQL.
Не подскажите, что там прописать?
Используй код для кнопки:
Код: Выделить всё
if SQLQuery1.Modified then
begin
SQLQuery1.Post; // Посылка изменений в набор данных
SQLQuery1.ApplyUpdates; // Применение изменений в наборе, данные по факту всё ещё в кэше
SQLTransaction1.Commit; // Сохранение всех изменений в БД
Добавлено спустя 49 секунд:
McLion писал(а):Всем привет,
хочу научиться работать с БД и написал маленькую прогу. Так вроде все получилось, только не получается добавлять, редактировать и удалять записи.
Насколько я понимаю надо прописывать соответствующие команды в InsertSQL, UpdateSQL и DeleteSQL.
Не подскажите, что там прописать?
Используй код для кнопки:
Код: Выделить всё
if SQLQuery1.Modified then
begin
SQLQuery1.Post; // Посылка изменений в набор данных
SQLQuery1.ApplyUpdates; // Применение изменений в наборе, данные по факту всё ещё в кэше
SQLTransaction1.Commit; // Сохранение всех изменений в БД
end;
