解决问题:今天项目中需要用到QT连接MYSQL数据库进行数据库访问,使用数据库驱动加载代码: qDebug()<<"数据库驱动:"<<QSqlDatabase::drivers();打印出来的结果居然为空“()”。
尝试解决方案:
1、新增包含头文件
#include <QSqlDatabase>
#include <QDebug>
2、删除环境变量
QTDIR:C:\Qt\Qt5.14.2\5.14.2\mingw73_32
3、测试系统自带SQLITE驱动
if(!QSqlDatabase::drivers().contains("QSQLITE"))
{
QMessageBox::critical(0, QString("数据库警告"), QString("没有驱动SQLITE"),QMessageBox::Cancel, QMessageBox::NoButton);
}
4、遍历打印所有数据库驱动名称
//打印Qt支持的数据库驱动
qDebug()<<"数据库驱动:"<<QSqlDatabase::drivers();//查看QT支持的数据库驱动
QStringList drivers = QSqlDatabase::drivers();
//利用drivers()获取数据库驱动类型,其返回值为QstringList类型
foreach (QString driver, drivers) //用foreach 进行遍历
{
qDebug() << driver; // 输出数据库驱动类型
}
结果都不理想,最后通过搜索系统提示的C and C++ compiler paths differ. C compiler may not work.错误信息后找到一个办法就是删除掉当前系统用户下的C:\Users\xqf22\AppData\Roaming\QtProject文件夹后系统恢复正常
总结:QSqlDatabase::drivers();打印出来的结果只需要删除C:\Users\当前用户\AppData\Roaming\QtProject目录后重新打开项目即可。