Russian Qt Forum

Qt => Базы данных => Тема начата: QuAzI от Ноябрь 26, 2010, 17:54



Название: SQLite, привязка Query к Database
Отправлено: QuAzI от Ноябрь 26, 2010, 17:54
Нацарапал простенький пример, чтобы разобраться, как оно работает. И теперь немного озадачен.

Код:
    QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
        db.setDatabaseName(path);

        if (!db.open())
        {
            qDebug() << db.lastError().text();
        }


        QSqlQuery query("CREATE TABLE person ("
                              "id INTEGER,"
                              "forename TEXT, surname TEXT )");
        query.last();
        query.prepare("INSERT INTO person (id, forename, surname) "
                      "VALUES (666, 'test', 'test')");

        query.exec();
        qDebug() << db.lastError().text();
        query.prepare("SELECT forename FROM person");
        query.exec();
        while (query.next()) {qDebug() << query.value(0).toString();}
        qDebug() << db.lastError().text();
Как query понимает, с какой базой ему работать? И как указать это в случае, если баз будет несколько?
Как происходит запись в файл? Открыл его в редакторе и вижу заголовок, а под ним записи следующие в обратном порядке от того, как я писал. При этом select работает правильно. Но при достижении какого-то значения начинается новая страница? С чем связана такая логика записи?


Название: Re: SQLite, привязка Query к Database
Отправлено: BRE от Ноябрь 26, 2010, 18:02
Поищи по форуму, одна из тем:
http://www.prog.org.ru/topic_12974_0.html


Название: Re: SQLite, привязка Query к Database
Отправлено: QuAzI от Ноябрь 26, 2010, 18:52
Про привязку маленько понял. А вот про запись в файл новых записей в обратной последовательности не пойму, зачем так сделано.


Название: Re: SQLite, привязка Query к Database
Отправлено: crossly от Ноябрь 29, 2010, 10:23
так  а какая вам разница как sqlite хранит свои записи... вас это не должно волновать вообще.... ну а если и в самом деле оч интересно то читайте доку по sqlite... Qt тут не причем...