#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();
}
Начинаю работу с SQLite
Вопрос такой
Только начал разбираться со связкой Qt+SQLite
Хочу произвести запись в таблицу
Создал через Sql Expert Personal базу poll, в ней таблицу pages
Получился файл poll.
Далее, этот файл закинул в папку с проектом
Выполняю код из учебника Бланшета и Саммерфилда
Код:
Получаю сообщение об ошибке: нет такой таблицы pages
Странная штука, база нашлась, а таблица нет?
Но, если я, ради прикола, попытаюсь подключаться к базе poll1, он её опять найдёт
Код:
db.setDatabaseName("poll");
Но в чём тогда суть физического размещения базы? При выполнении
Код:
db.setDatabaseName("poll");
он что, базу создаёт и в памяти её держит, а то, что она на диске - не важно?
Нуждаюсь в объяснении
Буду благодарен за любой совет
P.S. Кстати, кто какой программой для работы с SQLite базами пользуется?
Я вот 2 установил - Sql Expert Personal и SQLite Administrator, ими и пользуюсь
А что в дебаг выдаёт? Попробуй указать полный путь к файлу бд.
Цитата: Lindemann66
Кстати, кто какой программой для работы с SQLite базами пользуется?
SQLiteSpy. Она скрипты выполнять не умеет, для скриптов штатный sqlite3 пользуем.
Спасибо, попробовал, понравилось, ей и буду пользоваться
А проблема кстати легко решалась
Ошибся с выбором папки, где БД лежала
Лежала в UpdateScan
Естественно, не работало
Положил в UpdateScan-build-desktop - всё ок :)
Цитата: Lindemann66
понравилось, ей и буду пользоваться
Лишний раз говорит о том, что для работы с БД лучше Delphi/VCL ничего не придумали. Замечено, что программы, написанные не на VCL, как правило, часто хуже в плане интерфейса просто потому, что все хорошие гриды для C++/C# -- платные.