Следующая проблема возникла.
Кратко: После закрытия программы, работающей с БД - модификации БД не сохраняются. Гуглил усердно, возможно, не там. Но гуглил!)
Подробно:
Начал знакомство с SQLite, установил всё, как в вики написано. Изначально тыкался в компонент TSQLite3DataSet, затем понял, что в нем не реализовать нормальный SQL (в нем SQL запросы выполнялись лишь после перезапуска программы, не нашёл выхода, возможно, я туп ). Решил попробовать с TSQLite3Connection в связки с TSQLQuery. Базу данных создал через SQlite Manager (доп. к огнеЛису, все остальные админки показалось кривым или просто толком не работали, а эта - прелесть).
Вот структура единственной таблицы:
- Код: Выделить всё
CREATE TABLE "users" ("id" INTEGER PRIMARY KEY NOT NULL ,"id_us" CHAR NOT NULL DEFAULT (null) ,"FirName" CHAR NOT NULL DEFAULT (null) ,"PatName" CHAR DEFAULT (null) ,"SurName" CHAR NOT NULL DEFAULT (null) ,"NickName" CHAR DEFAULT (null) );
Вот INSERT запрос:
- Код: Выделить всё
SQLQuery.Close;
SQLQuery.SQL.Clear; //со времён дельфи привычка закрывать и очищать
SQLQuery.SQL.Text:='INSERT INTO users (ID_us,FirName,PatName,SurName,NickName ) VALUES("23342777", "Ivan","Ivanovich", "IVanov", "Vanya")';
SQLQuery.ExecSQL;
SQLQuery.SQL.text:='SELECT * FROM users'; // без возобновления селектА - Квери не хочет активироваться, а без активации не вызвать ApplyUpdates
SQLQuery.Active:=true;
SQLQuery.ApplyUpdates; // Гугл говорит, что именно эта команда должна записать данные из кеша в файл БД
В итоге - ДБГрид, связанный с Квери всё выводит, но после перезапуска в базе ничего нет и сам файл БД, судя по времени изменения, не трогается.
Прошу подсказать выход и не пинать, если ответ очевиден, бился долго..