本系统采用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
转载于:https://blog.51cto.com/shamrock/1431856