编译MySQL驱动 与 Qt 连接 MySQL
2011-04-18 00:01
411 查看
0 假设你已经编译安装好了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)比如: ../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的驱动就编好了。用如下代码进行驱动测试:(这段程序编译完之后不是运行,是调试,不然测试信息出不来) #include <QSqlDatabase> #include <QSqlQuery> #include <QSqlError> #include <QApplication> #include <QSqlDatabase> #include <QStringList> #include <QMessageBox> #include <QDebug> int main(int argc, char* argv[]) { QApplication app(argc, argv); qDebug() << "Available drivers:"; QStringList drivers = QSqlDatabase::drivers(); foreach(QString driver, drivers) qDebug() << "/t" << driver; QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); qDebug() << "MYSQL driver valid?" << db.isValid(); } 测试结果如下图: 4 在MySQL里创建库,创建库时数据库字符集选择gbk编码,创建数据库名为test,单表,表名为testTable,表内属性为name varchar ;(方便理解代码) 5 用如下代码测试连接数据库并测试写入、读出数据是否成功,并测试数据是否乱码。 #include <QtGui> #include <QtSql> #include <QTableView> #include <QString> #include <QObject> int main(int argc, char **argv) { QApplication app(argc, argv); QTextCodec::setCodecForTr(QTextCodec::codecForName("gbk")); //设置tr()编码。 QSqlQueryModel *model; QTableView *table=new QTableView; QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); db.setHostName("localhost"); //数据库服务器 db.setDatabaseName("test"); //数据库名 db.setUserName("root"); //登录名 db.setPassword("123456"); //密码 if(db.open()) { QMessageBox::information(0,QObject::tr("信息"), QObject::tr("数据库连接成功")); QSqlQuery query; query.exec(QObject::tr("INSERT INTO bbb VALUES ('柯南')")); query.exec("SELECT name FROM testTable");//name为属性名; //testTable为表名 model=new QSqlQueryModel; model->setQuery(query); model->setHeaderData(0, Qt::Horizontal, QObject::tr("姓名")); table->setModel(model); table->show(); } else { // 数据库打开失败,显示数据库返回的失败信息 QMessageBox::critical(0,QObject::tr("出错"),db.lastError().text()); } QApplication::connect(&app, SIGNAL(lastWindowClose()), &app, SLOT(quit())); return app.exec(); } 运行结果如下图: |
相关文章推荐
- Qt 5.4.1下编译MySQL驱动,连接MySQL数据库
- 编译MySQL驱动 与 Qt 连接 MySQL
- 编译Qt5.0连接MySql5.5数据库的驱动(5.0版本的编译,我记得5.2开始自带了)
- 记录:编译Qt5.0连接MySql5.5数据库的驱动
- Ubuntu15.04下QT5.4编译配置MySQL5.6.26连接驱动
- 记录:编译Qt5.0连接MySql5.5数据库的驱动
- Win7 Qt5.4.1+VS2013编译Oracle驱动,连接Oracle数据库
- 在Windows下面编译Qt的MySQL驱动
- QT4.7.1版本 mysql驱动插件 编译的问题
- vs 2005 qt下编译 MYsql 驱动
- MySQL的安装、编译Qt驱动和测试
- Windows下编译Qt的Mysql驱动
- qt编译mysql驱动插件
- Window下 Qt 编译MySQL驱动
- vs2008+Qt 编译MySQL驱动
- MySQL的安装、编译Qt驱动和测试
- qt对mysql驱动编译(vs2008+Qt+MySql项目)
- Windows下Qt编译MySQL驱动
- Qt编译MySql5.7.17驱动
- 转:eclipse+mingw+qt编译MySQL驱动的步骤