网上有太多的方法,但是找了半天还是不行,但是配置好之后用QT Creator连接
数据库可以,用VS2008还是不行。
最后有人说直接运行也是OK的,参考:
http://www.qtcn.org/bbs/read-htm-tid-51060-displayMode-1-page-1.html#140264。步骤如下:Qt SDK上已经成功运行。
1安装有QtCreator 或Qt SDK能直接运行.pro
2.文件夹下C:\Qt\4.7.3\src\plugins\sqldrivers\mysql的mysql.pro
增加两行代码:
INCLUDEPATH+=C:/MySQL/include
LIBS += -LC:/MySQL/lib/ -llibmysql
上面指示路径"C:/MySQL"是新建目录
文件夹,里面东西从MySQL的
安装路径考出
本例安装的是MySQL 5.5,安装路径为"C:\Program Files\MySQL\MySQL Server 5.5"考出“include和lib”放在新建目录文件夹“C:/MySQL”下。
3.之后直接运行mysql.pro,出现QtCreator界面,选择Qt版本,
此处选择了Qt 4.7.3,进行调试和发布个运行一次。
4.在C:\Qt\4.7.3\src\plugins\sqldrivers\mysql路径下,出现debug和release两个文件夹,把debug里面的qsqlmysqld4.lib和qsqlmysqld4.dll release文件夹下的qsqlmysql4.dll和qsqlmysql4.lib放到
C:\Qt\4.7.3\plugins\sqldrivers文件夹下。
5.将MySQL/ lib文件夹下的libmysql.dll考到要使用的Qt版本的bin处。
如果是Vs2008+Qt,那么上面选择Qt版本是vs2008的qt版本。
其他步骤一样
工具选项,手动添加

项目构建设置再次设置。就可以了
注意:此处测试程序中,DatabaseName("test")已在MySQL数据库中建好。MySQL数据库UserName为root密码123456.测试程序
- #include <QtGui/QApplication>
- #include "mainwindow.h"
- #include <QtSql>
- #include <QString>
- #include <QSqlRecord>
- #include <QDebug>
- void openDb()
- {
- QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
- db.setHostName("localhost");
- db.setDatabaseName("test"); //test为Mysql中的schema名
- db.setUserName("root");
- db.setPassword("123456");
- bool ret = db.open();
- if (ret)
- {
- qDebug("open db ok");
- }
- else
- {
- qDebug("open db failed");
- qDebug() << db.lastError().text();
- }
- qDebug()<<"Begin";
- // QSqlQuery query;
- //// query.exec(QObject::tr("create table student(sno varchar(10) not null primary key,sname varchar(20) not null,sclass varchar(10) not null)"));
- //// query.exec(QObject::tr("insert into student(sno,sname,sclass) values('2009001','lilei','0901')"));
- //// query.exec(QObject::tr("insert into student(sno,sname,sclass) values('2009002','lucy','0902')"));
- //// query.exec(QObject::tr("insert into student(sno,sname,sclass) values('2009003','mike','0903')"));
- // query.exec("select * from student");
- // qDebug()<<"sno sname sclass";
- // while(query.next())
- // {
- // qDebug()<<query.value(0).toString()<<" "<<query.value(1).toString()<<" "<<query.value(2).toString();
- // }
- // qDebug()<<"End";
- QSqlQuery query("select sname from student",db);
- QSqlRecord rec=query.record();
- while(query.next())
- {
- rec=query.record();
- int snocol=rec.indexOf("sname");
- QString value=query.value(snocol).toString();
- qDebug()<<"sno :"<<value;
- }
- query.clear();
- db.close();
- qDebug()<<"End";
- }
- int main(int argc, char *argv[])
- {
- QApplication a(argc, argv);
- openDb();
- // MainWindow w;
- // w.show();
- return a.exec();
- }
运行结果:
但是同样的程序在VS2008下就
出错了,同样的都是使用vs2008下的qt4.7.3,其他程序是一样的,为什么呢?