本系统采用QT+Access开发
数据库连接头文件connection.h
#ifndef CONNECTION_H #define CONNECTION_H #include <QMessageBox> #include <QSqlDatabase> #include <QSqlQuery> #include <QDebug> QSqlDatabase db; QSqlQuery query; QString dsn; static bool createConnection(){ db = QSqlDatabase::addDatabase("QODBC", "test"); //test为数据库的名称 QString dbname = "HouseManager.mdb"; dsn = QString("DRIVER={Microsoft Access Driver (*.mdb)};FIL={MS Access};DBQ=%1").arg(dbname); //dbname,为参数传递过来的数据库路径和名称 db.setDatabaseName(dsn); db.open(); if (!db.open()) { qDebug() << "打开数据库失败"; QMessageBox::critical(0, qApp->tr("Cannot open database"), qApp->tr("Unable to establish a database connection." ), QMessageBox::Cancel); return false; } query = QSqlQuery(db); return true; } static bool closeConnection(){ if(db.isOpen()){ // db.removeDatabase("QODBC"); // QSqlDatabase::removeDatabase(dsn);//删除默认连接。 QString name = db.connectionName(); db.close(); qDebug() << name; query.clear(); QSqlDatabase::removeDatabase(name);//删除默认连接。 qDebug() << "关闭数据库"; } if(query.isValid()){ // query.clear(); qDebug() << "query是有效的"; } if(query.isActive()){ // query.clear(); qDebug() << "query是激活的"; // query. } return true; } #endif // CONNECTION_H