Вот код содранный из примера, но в примере все работает а у меня нет.
#include <QtSql>
#include <QMessageBox>
#include "test.h"
#include "ui_test.h"
QSqlDatabase db;
QSqlQuery query;
QSqlRelationalTableModel model;
test::test(QWidget *parent)
: QMainWindow(parent), ui(new Ui::test)
{
ui->setupUi(this);
db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName(":memory:");
if (!db.open()) {
QMessageBox::critical(0, qApp->tr("Cannot open database"),
qApp->tr("Unable to establish a database connection.\n"
"Click Cancel to exit."), QMessageBox::Cancel);
}
query.exec("create table employee(id int primary key, name varchar(20), city int, country int)");
query.exec("insert into employee values(1, 'Espen', 5000, 47)");
query.exec("insert into employee values(2, 'Harald', 80000, 49)");
query.exec("insert into employee values(3, 'Sam', 100, 1)");
query.exec("create table city(id int, name varchar(20))");
query.exec("insert into city values(100, 'San Jose')");
query.exec("insert into city values(5000, 'Oslo')");
query.exec("insert into city values(80000, 'Munich')");
query.exec("create table country(id int, name varchar(20))");
query.exec("insert into country values(1, 'USA')");
query.exec("insert into country values(47, 'Norway')");
query.exec("insert into country values(49, 'Germany')");
model.setTable("employee");
model.select();
ui->tableView->setModel(&model);
}
test::~test()
{
delete ui;
}
Да еще какието ошибки непонятные:
Запускается G:\DATABASE\test\debug\test.exe...
QSqlQuery::exec: database not open
QSqlQuery::exec: database not open
QSqlQuery::exec: database not open
QSqlQuery::exec: database not open
QSqlQuery::exec: database not open
QSqlQuery::exec: database not open
QSqlQuery::exec: database not open
QSqlQuery::exec: database not open
QSqlQuery::exec: database not open
QSqlQuery::exec: database not open
QSqlQuery::exec: database not open
QSqlQuery::exec: database not open
QSqlDatabasePrivate::removeDatabase: connection 'qt_sql_default_connection' is still in use, all queries will cease to work.
G:\DATABASE\test\debug\test.exe завершилась с кодом 0
Вроде все делаю как надо, и вроде как все элементарно. Чего я непонимаю?