Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Другие СУБД > Начинаю работу с SQLite


Автор: Lindemann66 10.8.2011, 13:14
Всем привет!

Вопрос такой
Только начал разбираться со связкой Qt+SQLite
Хочу произвести запись в таблицу
Создал через Sql Expert Personal базу poll, в ней таблицу pages
Получился файл poll.

Далее, этот файл закинул в папку с проектом
Выполняю код из учебника Бланшета и Саммерфилда
Код

#include <QtGui/QApplication>
#include <QtSql>
#include <QMessageBox>
#include "mainwindow.h"

bool createConnection() {

    QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
    db.setDatabaseName("poll");

    if (!db.open()) {
        qDebug() << "Cannot open database:" << db.lastError();
        return false;
    }
    return true;
}

void insert() {
    QSqlQuery query("INSERT INTO pages (address, title, keywords, hash)"
                    "VALUES ('http://mail.ru', 'MAIL.RU - почта №1', 'mail, почта', '4343rere3223')");
    if (!query.isActive()) {
        QMessageBox::warning(NULL, "Database Error",
                             query.lastError().text());
    }
}

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    if (!createConnection()) {
        return 1;
    }
    insert();

    return a.exec();
}


Получаю сообщение об ошибке: нет такой таблицы pages
Странная штука, база нашлась, а таблица нет?
Но, если я, ради прикола, попытаюсь подключаться к базе poll1, он её опять найдёт
Код

db.setDatabaseName("poll");

Но в чём тогда суть физического размещения базы? При выполнении 
Код

db.setDatabaseName("poll");

он что, базу создаёт и в памяти её держит, а то, что она на диске - не важно?
Нуждаюсь в объяснении
Буду благодарен за любой совет
P.S. Кстати, кто какой программой для работы с SQLite базами пользуется?
Я вот 2 установил - Sql Expert Personal и SQLite Administrator, ими и пользуюсь

Автор: Lindemann66 10.8.2011, 14:13
Всё, разобрался в чём дело
Ошибся с выбором папки, где БД лежала
Лежала в UpdateScan
Естественно, не работало
Положил в UpdateScan-build-desktop - всё ок  smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)