macbook发布的qt程序可以访问数据库但不能更改数据库

macbook发布的qt程序可以访问数据库但不能更改数据库,第1张

是的。

自建代码管理系统从软件到硬件可能会遇到以下的问题:1、需要对GitLab搭建非常熟悉的人,专门负责维护;2、需要采购单独服务器,费用不菲来说,还得在复杂的市场上费力挑选,更要处理各种可能发生的硬件和网络故障;3、需要独立的互联网线路以方便公司外的员工访问代码,不太适合有异地或者外包团队的企业;

4、需要随时关注代码管理软件的各种漏洞和Bug并即刻更新;5、难以应对来自公司内部对代码仓库的恶意破坏,可能发生删库跑路事件。

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

      具体 *** 作步骤如下:

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

       2)maincpp中添加以下语句 QApplication::addLibraryPath("/plugins");

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

       4)新建文件夹,在你安装qt的目录中(我的目录是D:/Qt/485/bin)查找qtsql4dll   libgcc_s_dw2-1dll mingwm10dll  QtCore4dll  QtGui4dll 然后复制到新建的文件夹中

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

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

意思是说,还有某查询引用默认数据库连接"qt_sql_default_connection"。

如果忽略该警告,Qt官方文档里也写了,可能会出现内存泄漏:

Warning: There should be no open queries on the database connection when this function is called,

otherwise a resource leak will occur

还是不出现这个警告的好。怎么把它弄没了呢?我把一切外围的对象都排除了:仅建立一个连接,打开它,然后关闭连接,调用removeDatabase()。居然还有警告!问题已经锁定在我关闭连接的语句上:

QSqlDatabase::removeDatabase(QSqlDatabase::database()connectionName());

默认连接的名字也是默认的,需要通过connectionName()函数获得。这样写貌似没什么问题,后来调试发现,QSqlDatabase::database()静态函数实际上使默认连接的引用计数+1。上述句子相当于:

QSqlDatabase db = QSqlDatabase::database();//获得实例。

QString name = dbconnectionName();//获得默认连接名。

QSqlDatabase::removeDatabase(name);//删除默认连接。

这样,问题就清晰了,db获得了一个引用,此时引用计数为2。在调用removeDatabase()时,db对象并没有被删除,默认连接的引用计数仍为2,于是报告警告信息。

我们只需将其改为:

QString name;

{

name = QSqlDatabase::database()connectionName();

}//超出作用域,隐含对象QSqlDatabase::database()被删除。

QSqlDatabase::removeDatabase(name);

问题就解决了!

如果直接打默认连接名的话,代码就简单多了,不过名字不太好打(再说了,万一Qt把默认连接名改了呢!):

QSqlDatabase::removeDatabase("qt_sql_default_connection");//不推荐。

40℃。

苹果手机安全使用范围:

1、尽量在0摄氏度至35摄氏度之间的环境温度内使用iPhone。

2、低温或高温环境可能会暂时缩短电池寿命或导致设备暂时停止正常工作。

3、冬天尽量避免在室外长时间使用iPhone。

4、夏天在长时间使用iPhone时,尽量不要加装保护壳,让iPhone尽可能的散热。

setInterval(函数名,1000); t: Timer = new Timer(1000, 5); taddEventListener(TimerEventTIMER,函数名); taddEventListener(TimerEventTIMER_COMPLETE, 函数名); tstart();

以上就是关于macbook发布的qt程序可以访问数据库但不能更改数据库全部的内容,包括:macbook发布的qt程序可以访问数据库但不能更改数据库、在qt里面用release编译运行正常,能连接到数据库,但是无法使用数据库查询了,这是怎么回事喃、QT访问MYSQL数据库为什么一打开子窗口访问数据库就出问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存