Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /users/axis/www/wp-includes/pomo/plural-forms.php on line 210

Warning: Cannot modify header information - headers already sent by (output started at /users/axis/www/wp-includes/pomo/plural-forms.php:210) in /users/axis/www/wp-includes/feed-rss2.php on line 8
SQLite — Записки программиста http://axis.bplaced.net Программирование и не только Wed, 25 Dec 2024 10:41:22 +0000 ru-RU hourly 1 https://wordpress.org/?v=4.9.4 [SQL] Простенький бекап для SQLite http://axis.bplaced.net/news/586 http://axis.bplaced.net/news/586#respond Wed, 15 Aug 2012 14:06:52 +0000 http://axis.bplaced.net/?p=586 Для бекапа средствами SQL, а не самого SQLite'а можно сделать вот так:

//Подсоединяем файл БД, куда будем делать копию:
ATTACH DATABASE 'C:\file.db' AS fileDB;
//Создаём там таблицу путем копирования содержимого:
CREATE TABLE fileDB.qdn AS select * FROM table_name;
//Отсоединяемся:
DETACH fileDB;
]]>
http://axis.bplaced.net/news/586/feed 0
[Qt] Запись файла в SQLite http://axis.bplaced.net/news/557 http://axis.bplaced.net/news/557#respond Tue, 05 Jun 2012 14:00:25 +0000 http://axis.bplaced.net/?p=557 Собственно, всё просто
Создали в БД таблицу с атрибутом типа BLOB:

CREATE TABLE fileTable (id_file integer NOT NULL PRIMARY KEY AUTOINCREMENT, file BLOB NOT NULL);

Потом:

    QFile file(QApplication::applicationDirPath().append("/file"));
    file.open(QIODevice::ReadOnly);    //открыли файл
    QByteArray ba = file.readAll();    //прочитали из него всё
    QSqlQuery query(QSqlDatabase::database("sql"));    //
    query.prepare("INSERT INTO fileTable (file) VALUES(:val);");    //создали запрос
    query.bindValue ( ":val", ba);
    query.exec();    //запустили
    file.close();    //файл закрыли

И всё. Ну, естественно, дописали обработку ошибок.

Обратный процесс - чтение файла из SQLite:

    QFile file(QApplication::applicationDirPath().append("/newfile"));
    file.open(QIODevice::WriteOnly);
    QSqlQuery query(QSqlDatabase::database("sql"));

    query.prepare("SELECT file FROM fileTable;");
    query.exec();

    query.next();
    QByteArray ba = query.value(0).toByteArray();
    file.write(ba);
    file.close();
]]>
http://axis.bplaced.net/news/557/feed 0