#include <QtSql>
#include <QtGui>
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
/*
qDebug() << "Available drivers:";
QStringList drivers = QSqlDatabase::drivers();
qDebug() << drivers;
foreach(QString driver, drivers)
qDebug() << "\t" << driver;
*/
if(!QSqlDatabase::drivers().contains("QSQLITE"))
{
//如果数据库驱动里没有SQLite,则错误警告
QMessageBox::critical(this, tr("数据库警告"), tr("系统需添加SQLite数据库驱动"), QMessageBox::Cancel);
}
QSqlError error = db_Init();
if(error.type() != QSqlError::NoError)
{
showError(error);
return;
}
}
MainWindow::~MainWindow()
{
delete ui;
}
QSqlError MainWindow::db_Init()
{
//QSqlDatabase::database("syscfg.dat").close();
//QSqlDatabase::removeDatabase("syscfg.dat");
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); //添加数据库驱动
db.setDatabaseName(":memory:"); //数据库文件名,setDatabaseName(":memory:")指的是内存数据库
if(!db.open())
{
//如果打开失败
return db.lastError();
}
//创建人员组别表,2个参量 组别ID 和组别名称
QSqlQuery query;
if(!query.exec("CREATE TABLE table_group(group_id INTEGER PRIMARY KEY, group_name VCHAR(10))"))
{
return query.lastError();
}
//添加数据
query.exec("INSERT INTO table_group VALUES(1, 'teacher')");
query.exec("INSERT INTO table_group VALUES(2, 'student')");
//查看数据库
query.exec("SELECT * FROM table_group");
while(query.next())
{
int group_id = query.value(0).toInt();
QString group_name = query.value(1).toString();
qDebug() << "group id=" << group_id;
qDebug() << "group name=" << group_name;
}
return QSqlError();
}
void MainWindow::showError(const QSqlError &err)
{
QMessageBox::critical(this, "Unable to initialize Database",
"Error initializing database: " + err.text());
}
- 1
- 2
前往页