初级形态
描述:直接打开,如果无法正常打开则报错
//初级形态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;}
文章评论