Нацарапал простенький пример, чтобы разобраться, как оно работает. И теперь немного озадачен.
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 работает правильно. Но при достижении какого-то значения начинается новая страница? С чем связана такая логика записи?