Название: Удаление из *.db файла Отправлено: 17dufa от Январь 14, 2008, 13:12 Здраствуйте,
по поиску ничего похожего не нашел. Итак: qt 4.2.2 windows, комерц, sqlite, входящий в qt, база данных в виде *.db файла. Проблема при удалении записи, которое выглядит примерно так: Код: db=QSqlDatabase::addDatabase("QSQLITE"); Название: Re: Удаление из *.db файла Отправлено: sikuda от Январь 14, 2008, 13:51 Есть такая особенность SQLite 3. Как и *.DBF он не удаляет полностью и не уменьшает конечный файл. Использую VACUUM при выходе из программы.
Название: Re: Удаление из *.db файла Отправлено: 17dufa от Январь 14, 2008, 13:55 а можно кусок кода про этот VACUUM?
Название: Re: Удаление из *.db файла Отправлено: Sergeich от Январь 14, 2008, 21:24 :lol:
QSqlQuery q(db); q.exec("VACUUM"); Название: Re: Удаление из *.db файла Отправлено: 17dufa от Январь 21, 2008, 15:02 а в какой последовательности это надо делать? делаю так:
Код: db.transaction(); вот выдержка из документации, по sqlite "VACUUM only works on the main database. It is not possible to VACUUM an attached database file." как это понимать? я боюсь у меня именно второй случай изменения типа: Код: q1.exec("VACUUM FULL"); оказывается надо было читать документацию дальше: "The VACUUM command will fail if there is an active transaction. The VACUUM command is a no-op for in-memory databases." вот код, который работает: Код: db.transaction(); Название: Re: Удаление из *.db файла Отправлено: ритт от Январь 21, 2008, 16:23 гениально! :)
приятно, когда люди умеют читать документацию и, более того, читают документацию... Название: Re: Удаление из *.db файла Отправлено: 17dufa от Январь 21, 2008, 17:19 когда уж совсем ничего не получается - читайте документацию
хотелось сэкономить времени, каюсь. |