Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Начинаю работу с SQLite

5.7K
10 августа 2011 года
Lindemann66
193 / / 21.07.2011
Всем привет!

Вопрос такой
Только начал разбираться со связкой 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, ими и пользуюсь
277
10 августа 2011 года
arrjj
1.7K / / 26.01.2011
Navicat Lite ещё хорошая админка для БД.
А что в дебаг выдаёт? Попробуй указать полный путь к файлу бд.
10
10 августа 2011 года
Freeman
3.2K / / 06.03.2004
Цитата: Lindemann66
Кстати, кто какой программой для работы с SQLite базами пользуется?


SQLiteSpy. Она скрипты выполнять не умеет, для скриптов штатный sqlite3 пользуем.

5.7K
10 августа 2011 года
Lindemann66
193 / / 21.07.2011
Цитата: Freeman
SQLiteSpy. Она скрипты выполнять не умеет, для скриптов штатный sqlite3 пользуем.



Спасибо, попробовал, понравилось, ей и буду пользоваться

А проблема кстати легко решалась
Ошибся с выбором папки, где БД лежала
Лежала в UpdateScan
Естественно, не работало
Положил в UpdateScan-build-desktop - всё ок :)

10
10 августа 2011 года
Freeman
3.2K / / 06.03.2004
Цитата: Lindemann66
понравилось, ей и буду пользоваться


Лишний раз говорит о том, что для работы с БД лучше Delphi/VCL ничего не придумали. Замечено, что программы, написанные не на VCL, как правило, часто хуже в плане интерфейса просто потому, что все хорошие гриды для C++/C# -- платные.

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог