Название: Не сохраняются изменения в ячейках таблиц (БД sqlite) Отправлено: Senia_Bezrubashkin от Январь 15, 2013, 08:33 В примерах описывается вставка данных в таблицу, делаю как написано. Но при запуске приложения вновь, данные остаются без изменений. Почему так? Или примеры демонстрируют только работу команд-запросов и все происходит в оперативной памяти, а на диск писать это другая история?
Заранее спасибо. Название: Re: Не сохраняются изменения в ячейках таблиц (БД sqlite) Отправлено: Senia_Bezrubashkin от Январь 15, 2013, 08:53 Да и сама таблица физически не создается. Вставка данных, это так, тестовые действия. Думаю оба вопроса из одной области.
Код: void MainWindow::createTable(QString tableName) По идее метод должен создавать таблицу, и вроде создает (не выдает сообщение "Unable to create a table"). Закоменченные строки содержат название таблицы (жестко) для проверки работы запроса вставки. В любом случа, на диск не пишется ни то, ни другое. Название: Re: Не сохраняются изменения в ячейках таблиц (БД sqlite) Отправлено: LisandreL от Январь 15, 2013, 10:33 Ну самый очевидный вариант - начинаете транзакцию и не заканчиваете.
Название: Re: Не сохраняются изменения в ячейках таблиц (БД sqlite) Отправлено: Senia_Bezrubashkin от Январь 15, 2013, 11:07 Ну самый очевидный вариант - начинаете транзакцию и не заканчиваете. т. е. в sqlite есть средства для сохранения данных на диске? Ну, в смысле, мне не надо привлекать классы для работы с файлами, чтобы сохранять данные на диске?Название: Re: Не сохраняются изменения в ячейках таблиц (БД sqlite) Отправлено: Bepec от Январь 15, 2013, 12:00 sqlite как бы и работает с файлом базы данных. Да, тебе не нужно работать с файлом. За тебя это будет делать QSqlDatabase. Тебе же нужно лишь завершать транзакции, если ты их открываешь, и просто выполнять запросы.
Название: Re: Не сохраняются изменения в ячейках таблиц (БД sqlite) Отправлено: Serr500 от Январь 15, 2013, 20:58 Код: QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); Название: Re: Не сохраняются изменения в ячейках таблиц (БД sqlite) Отправлено: Senia_Bezrubashkin от Январь 15, 2013, 21:48 У меня вместо имени БД (параметр) стоит такая фигня:
Код: db.setDatabaseName(":memory:"); Название: Re: Не сохраняются изменения в ячейках таблиц (БД sqlite) Отправлено: Senia_Bezrubashkin от Январь 15, 2013, 21:57 Создал такой файл, положил параметром вместо ":memory:" добавил db.close(); в конце и... ничего не изменилось. В файл ничего не пишется как и раньше.
Название: Re: Не сохраняются изменения в ячейках таблиц (БД sqlite) Отправлено: Senia_Bezrubashkin от Январь 15, 2013, 22:15 Вот так сделал:
Код: QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); Название: Re: Не сохраняются изменения в ячейках таблиц (БД sqlite) Отправлено: Senia_Bezrubashkin от Январь 15, 2013, 22:22 О! Наврал... что-то происходит... при запуске в очередной раз обнаружились данные на диске. Оказывается создавать ничего не надо было. Файл с таким именем нарисовывается сам (просто в другой директории)!
Название: Re: Не сохраняются изменения в ячейках таблиц (БД sqlite) Отправлено: Serr500 от Январь 16, 2013, 08:30 Чтобы файл был в нужной директории, можно сделать так:
Код: db.setDatabaseName("C:/Some_Folder/ddd.sqlite"); |