QT链接mysql驱动程序出现的问题详解
来源:互联网 发布:淘宝运营公司那家强 编辑:程序博客网 时间:2024/06/17 06:34
QT链接mysql驱动程序出现的问题详解
首先列举一下Qt顺利链接mysql的操作步骤:
WARNING: e:\Qt\2010.05\qt\src\plugins\sqldrivers\mysql\mysql.pro:2: Unescaped backslashes are
WARNING: e:\Qt\2010.05\qt\src\plugins\sqldrivers\mysql\mysql.pro:2: Unescaped backslashes are
WARNING: e:\Qt\2010.05\qt\src\plugins\sqldrivers\mysql\mysql.pro:2: Unescaped backslashes are
但是对最后的结果没有影响。
(4)上述操作完毕后,在C:\Qt\2010.02.1\qt\plugins\sqldrivers就会生成所需的驱动文件,包含四个:
上述问题在初用Qt时困扰了我很长时间,那时真是一种煎熬,希望对正在使用Qt同时也遇到这类问题的网友提供一些帮助!
1.首先当然是要有VS2008+Qt4.7的开发环境。
2.安装MySQL,最好是4以后的版本,安装MySQL时要勾住“C Include Files 和 Lib Files”选项,这样才能装上MySQL的头文件和链接库。(或者选择FULL安装)
3.由于MySQL先天的路径问题(就是它的路径里面有空格),我们需要把它的include和lib目录复制出来,放在一个没有空格的目录下。
在C盘建立Mysql5.5文件夹,把include和lib放进去。
4. 打开Qt Command Prompt 窗口,输入命令:
cd C:\Qt\4.7.4\src\plugins\sqldrivers\mysql\
5. 输入命令:
qmake -o "INCLUDEPATH+=C:\Mysql5.5\include" "LIBS+=C:\Mysql5.5\libmysql.lib" mysql.pro
这里面的路径就是第3步里面创建的目录
6.输入命令: nmake release debug
到这里,其实MySQL的驱动已经编译完了,但是可能编译出来的动态链接库没有自动拷贝到C:\Qt\4.7.4\plugins\sqldrivers 中去。没关系,我们手动拷贝如下:
【拷贝1】将编译生成的mysql驱动
C:\Qt\4.7.4\src\plugins\sqldrivers\mysql\release和
C:\Qt\4.7.4\src\plugins\sqldrivers\mysql\release\debug 里面把qsqlmysql4.dll、qsqlmysql4.lib、qsqlmysqld4.dll、qsqlmysqld4.lib拷到 c:\Qt\4.7.4\plugins\sqldrivers 里面就行了。
【拷贝2】将libmysql.dll拷贝到C:\Qt\4.7.4\bin。
下面可以进行Qt数据库的测试例子了:
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
qt_mysql w;
QTextCodec::setCodecForTr(QTextCodec::codecForName("gbk")); //设置tr()编码。
QSqlQueryModel *model;
QTableView *table=new QTableView;
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("10.3.2.84"); //数据库服务器
db.setDatabaseName("petct"); //数据库名
db.setUserName("admin"); //登录名
db.setPassword("admin"); //密码
if(db.open())
{
QSqlQuery query;
query.exec("update patient_basic_info set sex ='m 'where patient_id = 3");
query.exec("DELETE FROM patient_basic_info where patient_id = 3");
query.exec("SELECT patient_id , patient_name,ID_card_no,sex FROM patient_basic_info");//name为属性名;
query.next();
QString name = query.value(1).toString(); w.ui.patient_name_text->setText(name);
model=new QSqlQueryModel;
model->setQuery(query);
table->setModel(model);
}
else
{
// 数据库打开失败,显示数据库返回的失败信息
QMessageBox::critical(0,QObject::tr("数据库打开失败"),db.lastError().text());
}
w.show();
QApplication::connect(&app, SIGNAL(lastWindowClose()), &app, SLOT(quit()));
return app.exec();
}
附件使用,
1、将libmysql.dll拷贝到C:\Qt\4.7.4\bin 这样Qt驱动可以调用mysql,打开数据库
2、将qsqlmysql4.dll、qsqlmysql4.lib、qsqlmysqld4.dll、qsqlmysqld4.lib拷贝到C:\Qt\4.7.4\plugins\sqldrivers 这就是Qt mysql的驱动
- QT链接mysql驱动程序出现的问题详解
- 关于MySQL链接出现的问题
- php链接mysql出现的权限问题
- VS2013链接mysql出现的问题一
- 用xampp链接mysql出现的问题
- 【qt大贴士】 qt链接mysql时的问题
- QT mysql 驱动程序
- 解决qt mysql出现的:无法加载驱动问题
- 解决qt mysql出现的:无法加载驱动问题
- Qt连接mysql数据库,及出现的问题
- 编译linux驱动程序出现的一些问题
- mysql出现的问题
- linux驱动程序多模块编译链接时的问题
- qt链接mysql数据库
- QT链接数据库MySql
- Qt 5 链接MySQL
- qt 链接mysql
- ubuntu10.04 Qt5.2.1链接mysql出现QMYSQL driver not loaded的问题!!!!
- equals()与hashCode()方法协作约定
- Java 8.0 的新特性——default()方法介绍
- vim配置
- 利用微信机器人,自动发送验证码
- lightoj1380 Teleport
- QT链接mysql驱动程序出现的问题详解
- 第一篇博客
- JavaScript闭包初探
- 关于Myeclipse下Classes不显示
- kali用scim安装中文输入法
- 16_Java 数组
- 一些疑难问题解决方法
- Josephus问题解决方法四(循环数组)
- image 相机vc+环境配置