给楼主一段示例代码,里面的内容不严谨,但足够展示在主函数中处理数据库连接、删除的问题了:
int main(int argc, char **argv)
{
QApplication app(argc, argv);
QTextCodec *codec = QTextCodec::codecForName("GBK");
QTextCodec::setCodecForTr(codec);
QTextCodec::setCodecForCStrings(codec);
QApplication::setStyle("Cleanlooks");
{
QString strStyleSheet;
QFile file(":/etc/default_base.qss");
if (file.open(QIODevice::ReadOnly | QIODevice::Text))
{
strStyleSheet += QString::fromUtf8(file.readAll().data());
file.close();
}
app.setStyleSheet(strStyleSheet);
}
QTranslator translator;
translator.load(":/qt/trans/qt_zh_CN.qm");
app.installTranslator(&translator);
QSettings *settings = new QSettings(QApplication::applicationDirPath()
+ "/../etc/PosExpt.conf", QSettings::IniFormat);
QSqlDatabase *db = new QSqlDatabase(QSqlDatabase::addDatabase("QODBC"));
db->setDatabaseName(QString("DRIVER={SQL Server};SERVER=%1;DATABASE=%2;UID=%3;PWD=%4")
.arg(settings->value("hostname").toString())
.arg(settings->value("database2").toString())
.arg(settings->value("username").toString())
.arg(settings->value("password").toString()));
QString connName = db->connectionName();
if (!db->open())
{
QMessageBox::critical(NULL, "错误信息", "连接数据库失败");
delete settings;
delete db;
QSqlDatabase::removeDatabase(connName);
app.quit();
return EXIT_FAILURE;
}
ChinuxTeam::MainWindow window;
delete settings;
window.resize(800, 600);
window.showMaximized();
int iRet = app.exec();
db->close();
delete db;
QSqlDatabase::removeDatabase(connName);
return iRet;
}