0起因
做题我开始做我们学校的数据库实习报告。报告上要求用sqlserver。不过我是一个开源的支持者,所以我选择了用mysql+qt开发我的程序。
我在书《c++ gui qt4 编程(第二版)》中找到了有关数据库开发的资料。首先这篇文章的解决方法并不重要,重要的是我在这次解决问题中学到了什么。
书中给的意思是连接数据库要这样写。
bool createConnection()
{
QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("local");
db.setDatabaseName("mytest");
db.setUserName("root");
db.setPassword("123456");
if(!db.open())
{
printf("error\n");
}
else
{
printf("yes\n");
}
return true;
}
1问题
但是运行起来问题就来了。编译运行后给出的错误信息是
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC3 QODBC
从错误信息中可以发现其实是没有mysql的数据库驱动造成的。但是书中说qt实际上是带有数据库驱动程序的。只是由于开源许可证的原因,不能提供所有数据库的驱动程序,比如sqlserver。 <

在做数据库实习报告时,作者选择使用MySQL和QT4.7,但遇到无法连接数据库的问题。通过分析错误信息,作者意识到书中给出的解决方法并不适用,并反思了自己以往在解决问题时过于依赖错误提示和直接搜索解决方案的习惯。作者提醒读者,书上的代码可能不适用于所有版本,帖子的解决方法也不一定是最佳方案,理解错误信息并独立思考才是关键。最终,作者指出,即使连接成功,由于驱动不匹配,仍无法进行查询。
最低0.47元/天 解锁文章
1067





