|
数据库连接(Mysql与SQLite)
头文件 #include "QtSql" #include "QtDebug" #include "QString" public: DbClass(QString dblitename,bool menulite); //true--> Starrlite.db //false--> config.db DbClass(QString mysqldbname,QString host,QString username,QString password,bool islog); //false -->Starrlidb //true --> Stattlilog QSqlDatabase dblite; // Sqlite数据库连接标识 --> config.db QSqlDatabase Starrlite; // Sqlite数据库连接标识 --> JumixRes.db QSqlDatabase db; // Mysql数据库连接标识 -->Starrlidb QSqlDatabase dblog; // Mysql数据库连接标识 --> Stattlilog private: QString ErrMess = ""; // 错误信息 bool status =false; //状态 true 数据正常 源码 DbClass::DbClass(QString dblitename,bool RestInfo=false) { QString filename=QCoreApplication::applicationDirPath()+"/"+dblitename; QString filename2=QCoreApplication::applicationDirPath()+"/"+dblitename; if ( (dblitename =="Config.db") && QFile::exists(filename2)) filename=filename2;//如果当前目录有Config,则优先使用,用于 多用户 同时使用 if (!RestInfo) { //Config.db this->dblite if(QSqlDatabase::contains("sqliteconn")) { this->dblite = QSqlDatabase::database("sqliteconn"); } else { this->dblite = QSqlDatabase::addDatabase("QSQLITE","sqliteconn"); this->dblite.setDatabaseName(filename); } bool ok = this->dblite.open(); if (ok) { this->status =true; this->ErrMess ="打开SQlite数据库成功:"+dblitename; } else { this->status =false; this->ErrMess ="打开SQlite数据库失败:"+dblitename+":"+this->dblite.lastError().text(); } } else { //JumixRes.db this->Starrlite //放与config 同一目录 if(QSqlDatabase::contains("starrliteconn")) { this->Starrlite = QSqlDatabase::database("starrliteconn"); } else { this->Starrlite = QSqlDatabase::addDatabase("QSQLITE","starrliteconn"); this->Starrlite.setDatabaseName(filename); } bool ok = this->Starrlite.open(); if (ok) { this->status =true; this->ErrMess ="打开SQlite数据库成功:"+dblitename; } else { this->status =false; this->ErrMess ="打开数据库J失败:"+dblitename+":"+this->Starrlite.lastError().text(); } } } DbClass::DbClass(QString mysqldbname,QString host,QString username,QString password,bool islog=false) { // qDebug()<<"MySQL DataBase Operation:"<< mysqldbname; if (!islog) { //Mysql - Starrlidb - this->db if(QSqlDatabase::contains("mysqlconn")) { this->db = QSqlDatabase::database("mysqlconn"); } else { this->db = QSqlDatabase::addDatabase("QMYSQL","mysqlconn"); this->db.setHostName(host); this->db.setPort(3306); this->db.setUserName(username); this->db.setPassword(password); this->db.setDatabaseName(mysqldbname); } bool ok = db.open(); if (ok) { this->status =true; this->ErrMess ="打开MySql数据库成功:"+mysqldbname; } else { this->status =false; this->ErrMess ="打开MySql数据库失败:"+this->db.lastError().text(); } } else { //Mysql - Starrlilog - this->dblog if(QSqlDatabase::contains("dblogconn")) { this->dblog = QSqlDatabase::database("dblogconn"); } else { this->dblog = QSqlDatabase::addDatabase("QMYSQL","dblogconn"); this->dblog.setHostName(host); this->dblog.setUserName(username); this->dblog.setPassword(password); this->dblog.setDatabaseName(mysqldbname); } bool ok = dblog.open(); if (ok) { this->status =true; this->ErrMess ="打开Log数据库成功:"+mysqldbname; // qDebug()<<"打开数据库出错,原因:"<< this->ErrMess; } else { this->status =false; this->ErrMess ="打开Log数据库失败:"+this->dblog.lastError().text(); } } } |