初级形态
描述:直接打开,如果无法正常打开则报错
//初级形态
bool opendatabase()
{
QSqlDatabase mydb=QSqlDatabase::addDatabase("QSQLITE");
mydb.setDatabaseName(MydbLocal);//平时debug正常用
//mydb.setDatabaseName("./employee.db");//release用
if(mydb.open())
{
qDebug()<<"open success";
return true;
}
else
{
qDebug()<<"open failed";
return false;
}
}
中级形态
描述:
在初级形态的基础上,加上了一些判断和创建机制
// 打开数据库 使用<SQL_lite>
bool OpenDatabase()
{
QSqlDatabase mydb;
if (QSqlDatabase::contains(databaseName)) { //打开了数据库
mydb = QSqlDatabase::database(databaseName);
}
else { //若数据库不存在,则会直接创建
mydb = QSqlDatabase::addDatabase("QSQLITE");
//设置sql库名称
mydb.setDatabaseName(MydbLocal+ "/" + databaseName + ".db");
qDebug() << QCoreApplication::applicationDirPath() << mydb.databaseName();
}
//是否打开失败
if(!mydb.open()) {
//提示错误
qDebug()<<"open false";
QMessageBox::warning(0, QObject::tr("Database Error"), mydb.lastError().text()); //提示框
return false;
}
//创建表
QSqlQuery query;
bool finish = query.exec(QString("create table %1 (name varchar, number varchar, departments varchar,class varchar, EnterTime varchar, GPA varchar, password varchar)").arg(datatableName));
if (finish == true) {
//插入管理员信息
query.exec(QString("insert into %1 values ('admin','201010','人事部', '人事经理' ,'2010','5.3','admin')").arg(datatableName));
//虚拟员工信息
query.exec(QString("insert into %1 values ('abc','201103','综合办', '职员' ,'2011','4.7','123')").arg(datatableName));
query.exec(QString("insert into %1 values ('ablke','201711','财务部', '财务部长' ,'2016','3.3','456')").arg(datatableName));
return true; //新建数据库成功
}
else {
QSqlError lastError = query.lastError();
qDebug()<<lastError;
QString err = lastError.driverText();
return false;
}
return true;
}
文章评论