在qt里面用release编译运行正常,能连接到数据库,但是无法使用数据库查询了,这是怎么回事喃?

在qt里面用release编译运行正常,能连接到数据库,但是无法使用数据库查询了,这是怎么回事喃?,第1张

在生成可执行文件给老板看设计的时候,遇到了无法保存数据的问题,觉得可能是无法链接数据库,或者缺少什么内容的问题,在网上查了一些资料,最终测试可顺利完成数据库的链接。经检验,在window 7 32 or 64下都可以使用。使用的工具是Qt Creator 2.8.0,qt版本4.8.5 数据库为Sqlite 若是使用其他数据库,可能略有不同。

      具体 *** 作步骤如下:

      1)在release文件夹里创建plugins文件夹,并将QT安装目录下的plugins\sqldrivers文件夹下的libqsqlite4.a qsqlite4.dll(数据库不同可能一样) 复制到release\plugins文件夹(如果sqldrivers文件夹中没有你需要的驱动,可能就需要下载其他的驱动了,方法大致相同)

       2)main.cpp中添加以下语句 QApplication::addLibraryPath("./plugins")

       3)在构建中选中release 后进行编译,生成exe文件。

       4)新建文件夹,在你安装qt的目录中(我的目录是D:/Qt/4.8.5/bin)查找qtsql4.dll   libgcc_s_dw2-1.dll mingwm10.dll  QtCore4.dll  QtGui4.dll 然后复制到新建的文件夹中

       5)将release下的exe文件和sqldrivers文件夹复制到新建的文件夹。

       6)运行生成的exe 文件,就可测试功能了。

1.安装qt的时候还没有安装mysql.也就是说应该在安装qt之前安装mysql数据库.这个错误由QSqlDatabase抛出db.lastError().text()

2.将以前编译的mysql驱动程序拷入qt文件夹位置放错.

3.你的程序写错了.

4."driver not loaded" 是由query.lastError().text()抛出的错误.

5.gcc版本不一样(本机和目标机).

既然知道原因了,解决起来也就非常轻松了.

1.重新安装qt,重新安装mysql驱动

2和3的解决方法我就没有什么好说的了.

4. 说明你的query在创建的时候没有和qsqldatabase建立起关联.正确的方法是声明qsqldatabase后就声明query.如果你希望一 个连接能够和多个query关联使用如下语法:QSqlQuery query(db),db是QSqlDatabase的实例名.

5.同步gcc版本咯..

首先,运行如下测试代码:

//don't forget about QT+= sql

qDebug() <<QSqlDatabase::drivers()

QSqlDatabase db( QSqlDatabase::addDatabase( "QMYSQL" ) )

qDebug() <<db.lastError()

对于一些初学Qt的人来说,在软件里面可以运行

里面的程序进行调试,但是想炫耀一个自己的劳动成功,给别人看看,就不行了,把.exe文件拷贝给别人,别人无法运行。

如果想运行这个编译成功的软件,你可以这么做

方法一:把编译成功的.exe文件放到你QT的安装目录下,例如:C:\Qt\2010.05\qt\bin,这样点击可以运行(软件运行依赖环境的)

方法二:在C:\Qt\2010.05\qt\bin这个路径下面,把软件需要的基本动态链接库文件拷贝到你的release目录下面

MINGWM10.DLL

QtGui4.dll

QtCore4.dll

phonon4.dll

方法三:比较笨哈,就是把C:\Qt\2010.05\qt\bin下面的动态库全部考到一个文件夹中,然后看着删,删除了不能运行的就留下,最后剩下的

就是必要的动态库文件了。

这个得看你软件里面用到了哪些控件,哪些功能,基本的就是这3个动态文件,如果有别的,你拷贝一下就可以了。

第二种方法简单,但是得看你的软件用那些服务了,如果用数据库,就得把数据库QtSql4.dll的动态库加入到里面去,如果用网络了,再

把网络QtNetwork4.dll等动态库加入到里面去,这么说,大家应该都懂得了吧。

这样就可以运行了。但图片文件还是可能显示不出来,解决办法:

把程序文件夹里,建立一个imageformats目录(必须是这个名字),把qt目录下的plugin/imageformats目录下对应的dll文件copy过去。这样动态连接就完成了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10100129.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存