本文介绍的是Qt 连接 MySQL并编译驱动,安装之后,还要加载驱动,加载驱动的方法,本文又详细介绍,先来看内容。

Qt 连接 MySQL并编译驱动是本文呢要介绍的内容,Qt开发环境并可正常使用(假设用的是VS2008+ QtVisualStudioIntegrationv1.43for.VS.2003.2005)一切操作均在windows下进行。

1、安装MySQL

下载MySQL安装程序,安装时选择Custom方式,选择安装目录,目录***不要有空格,不要有中文,选择安装include和lib文件。其它的就没什么了。Sqlyog是一个MySQL的图形界面管理工具,可以安装上,方便数据库操作。

2、将安装好的MySQL目录下的include文件夹里的文件(头文件)复制到编译工具的include文件夹下,再将MySQL目录下的lib\opt里的文件复制到编译工具的lib文件夹下,简而言之就是要让编译器能找到MySQL里相应的文件。(该路径也可在生成工程文件时添加给qmake)比如:

  1. ..\src\plugins\sqldrivers\mysql>qmake"INCLUDEPATH+=D:\MySQL\include""LIBS+=D:\MySQL\lib\opt\libmysql.lib"

3、打开VS2008 命令提示符,将目录切换到Qt\src\plugins\sqldrivers\MySQL\,运行qmake

完了在运行nmake。不出错的话MySQL驱动就编好了。用如下代码进行驱动测试:(这段程序编译完之后不是运行,是调试,不然测试信息出不来)

  1. #include<QSqlDatabase>
  2. #include<QSqlQuery>
  3. #include<QSqlError>
  4. #include<QApplication>
  5. #include<QSqlDatabase>
  6. #include<QStringList>
  7. #include<QMessageBox>
  8. #include<QDebug>
  9. intmain(intargc,char*argv[])
  10. {
  11. QApplicationapp(argc,argv);
  12. qDebug()<<"Availabledrivers:";
  13. QStringListdrivers=QSqlDatabase::drivers();
  14. foreach(QStringdriver,drivers)
  15. qDebug()<<"\t"<<driver;
  16. QSqlDatabasedb=QSqlDatabase::addDatabase("QMYSQL");
  17. qDebug()<<"MYSQLdrivervalid?"<<db.isValid();
  18. }

测试结果如下图:

Qt 连接 MySQL并编译驱动(qt5编译mysql驱动)  MySQL 驱动 第1张

4、MySQL里创建库,创建库时数据库字符集选择gbk编码,创建数据库名为test,单表,表名为testTable,表内属性为name varchar ;(方便理解代码)

5、用如下代码测试连接数据库并测试写入、读出数据是否成功,并测试数据是否乱码。

  1. #include<QtGui>
  2. #include<QtSql>
  3. #include<QTableView>
  4. #include<QString>
  5. #include<QObject>
  6. intmain(intargc,char**argv)
  7. {
  8. QApplicationapp(argc,argv);
  9. QTextCodec::setCodecForTr(QTextCodec::codecForName("gbk"));//设置tr()编码。
  10. QSqlQueryModel*model;
  11. QTableView*table=newQTableView;
  12. QSqlDatabasedb=QSqlDatabase::addDatabase("QMYSQL");
  13. db.setHostName("localhost");//数据库服务器
  14. db.setDatabaseName("test");//数据库名
  15. db.setUserName("root");//登录名
  16. db.setPassword("123456");//密码
  17. if(db.open())
  18. {
  19. QMessageBox::information(0,QObject::tr("信息"),
  20. QObject::tr("数据库连接成功"));
  21. QSqlQueryquery;
  22. query.exec(QObject::tr("INSERTINTObbbVALUES('柯南')"));
  23. query.exec("SELECTnameFROMtestTable");//name为属性名;
  24. //testTable为表名
  25. model=newQSqlQueryModel;
  26. model->setQuery(query);
  27. model->setHeaderData(0,Qt::Horizontal,QObject::tr("姓名"));
  28. table->setModel(model);
  29. table->show();
  30. }
  31. else
  32. {
  33. //数据库打开失败,显示数据库返回的失败信息
  34. QMessageBox::critical(0,QObject::tr("出错"),db.lastError().text());
  35. }
  36. QApplication::connect(&app,SIGNAL(lastWindowClose()),&app,SLOT(quit()));
  37. returnapp.exec();
  38. }

运行结果如下图:

Qt 连接 MySQL并编译驱动(qt5编译mysql驱动)  MySQL 驱动 第2张

小结:关于Qt 连接 MySQL并编译驱动的内容介绍的完了,希望本文呢对你有所帮助!更多内容请参考编辑推荐。

转载请说明出处
知优网 » Qt 连接 MySQL并编译驱动(qt5编译mysql驱动)

发表评论

您需要后才能发表评论