文档章节

Driver not loaded Driver not loaded

fudum
 fudum
发布于 2014/06/24 21:16
字数 549
阅读 118
收藏 0
点赞 0
评论 0

先阐述一下开发环境:windows7 + vs2012  + qt5.2.0 + c++。开发服务器端的程序。

发布程序的时候,把exe文件,dll文件,plugins文件下的驱动dll都copy到一个文件夹上。然后copy到服务器上,运行时候,日志文件一直输出Driver not loaded,不能够对数据库进行操作。

因为服务器上已经部署了一个程序,用相同的配置开发的,没有问题,很是纳闷,在网上搜索,找到一篇文章http://qt-project.org/forums/viewthread/5664。上面有个叔叔回复帖子:


If you declare the variable in the header as global, it is up to the compiler, when exactly the object is created (and that varies from compiler to compiler!), so it can be that there is an attempt to create the object at a time, when Qt is not finally set up yet – which can lead to not finding plugins and the like.

The steps are basically:

1. create a database connection somewhere in a connectDb method or the like:

  1. QSqlDatabase db  =  QSqlDatabase :: addDatabase ( "QPSQL" ) ;
  2. db. setHostName ( "acidalia" ) ;
  3. db. setDatabaseName ( "customdb" ) ;
  4. db. setUserName ( "mojito" ) ;
  5. db. setPassword ( "J0a1m8" ) ;
  6. bool ok  = db. open ( ) ;
The above snippet creates a default database; if you need more DBs, add a second parameter to the addDatabase call with the internal name you want to identify it with.

2. get the database handle wherever you need it

  1. QSqlDatabase db  =  QSqlDatabase :: database ( ) ;

This retrieves the previously setup default database; add a name to it if you have multiple ones.

3. close the database in a disconnectDB method
Get the handle like above and call close on it.

This way you get rid of the global object and hence avoid initialization hassles caused by the linker.

Oh, and an important note:
QSqlDatabase::addDatabase() [doc.qt.nokia.com], you must not call it on an QSqlDatabase object created with new! Just do it like the samples in the docs (= the snippets I copied above) show you; you just need to change the driver name, username, password, etc.

看到第一句话,If you declare the variable in the header as global.我就明白了,我的程序把QSqlDatabase db;定义成静态的了,有的时候在qt没有加载驱动的情况下加载。

我于是把程序改为:

在程序中先对数据库初始化:

//gps数据库连接
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC","one");
db.setDatabaseName(dbname);//数据库名   
db.setUserName(usrname);//数据库用户名   
db.setPassword(password);//数据库密码 
db.setPort(prot);//设置数据库的端口

以后调用的时候利用:

QSqlDatabase db = QSqlDatabase::database("one",true);

来调用db连接,后来运行程序就解决了那个bug.





© 著作权归作者所有

共有 人打赏支持
fudum

fudum

粉丝 2
博文 7
码字总数 3605
作品 0
武汉
程序员
debian VGA driver

In Linux, there is two parts for the video driver, the kernel part and the X server part. Let's identify your hardware first. By typing in a terminal, you should see a line with......

idoz ⋅ 2012/10/12 ⋅ 0

ocfs2集群系统节点无法挂载

最近在测试ocfs2集群文件系统,主节点可以挂载,但第二个节点无法挂载,配置cluster.conf文件如下: node: name = joe-desktop cluster = ocfs2 number = 0 ipaddress = 192.168.1.246 ipport...

joeluo ⋅ 2011/08/04 ⋅ 0

Intel PRO/Wireless 2100, 2200 and 2915 devices for Debian5

Intel PRO/Wireless 2100, 2200 and 2915 devices This page describes how to enable support for WiFi devices based on Intel 2100, 2200 and 2915 chipsets on Debian systems. 目录 In......

任远 ⋅ 2010/10/31 ⋅ 0

DriverManager 连接不同的连接池

public class DriverManager extends Object The basic service for managing a set of JDBC drivers. NOTE: The interface, new in the JDBC 2.0 API, provides another way to connect to ......

Oscarfff ⋅ 2016/10/10 ⋅ 0

JDBC中获取连接的两种途径:DRIVERMANAGER和DATASOURCE

java.sql.DriverManager The basic service for managing a set of JDBC drivers. NOTE: The interface, new in the JDBC 2.0 API, provides another way to connect to a data source. The ......

刘小兵2014 ⋅ 2011/07/29 ⋅ 0

tomcat shutdown后清理工作出现的异常

引言 tomcat属于web应用服务器,当我们的应用服务器关闭后,但是有些java class/thread/threadLocal等依然存活,当再次reload后,就会导致内存的溢出.为了避免这种严重的内存leak问题,tomcat做了...

乾坤刀 ⋅ 2017/10/10 ⋅ 0

loadjava 把java导入Oracle数据库

1)load jar file 2)load class file 3)remove Java classes from the database 4)call Java存储过程 5)Creating a PL/SQL Wrapper The syntax for creating this procedure is: where param......

idoz ⋅ 2013/06/19 ⋅ 0

急求助大神,postfix,-ERR Authentication failed

root@LBServer2 ~]# telnet mmku.com 110 Trying Connected to mmku.com. Escape character is '^]'. +OK Dovecot ready. user wzt@mmku.com +OK pass woaiwojia -ERR Authentication failed......

想知道 ⋅ 2015/10/11 ⋅ 0

中断之Bottom-half

Tasklets and Bottom-Half Processing One of the main problems with interrupt handling is how to perform longish tasks within a handler. Often a substantial amount of work must be......

zray4u ⋅ 2016/11/26 ⋅ 0

java项目跑不起来,报Cannot determine embedded datasource。。。。

使用了spring boot pom.xml都配置好了 propertys也有数据 datasource 但是 报错 java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Met......

徐一万 ⋅ 2016/10/09 ⋅ 3

没有更多内容

加载失败,请刷新页面

加载更多

下一页

OSChina 周三乱弹 —— 这样的女人私生活太混乱了

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ 胖达panda :你经历过体验到人生的大起大落吗?我一朋友在10秒内体验了,哈哈。@小小编辑 请点一首《almost lover》送给他。 《almost love...

小小编辑 ⋅ 34分钟前 ⋅ 5

自己动手写一个单链表

文章有不当之处,欢迎指正,如果喜欢微信阅读,你也可以关注我的微信公众号:好好学java,获取优质学习资源。 一、概述 单向链表(单链表)是链表的一种,其特点是链表的链接方向是单向的,对...

公众号_好好学java ⋅ 39分钟前 ⋅ 0

Centos7重置Mysql 8.0.1 root 密码

问题产生背景: 安装完 最新版的 mysql8.0.1后忘记了密码,向重置root密码;找了网上好多资料都不尽相同,根据自己的问题总结如下: 第一步:修改配置文件免密码登录mysql vim /etc/my.cnf 1...

豆花饭烧土豆 ⋅ 今天 ⋅ 0

熊掌号收录比例对于网站原创数据排名的影响[图]

从去年下半年开始,我在写博客了,因为我觉得业余写写博客也还是很不错的,但是从2017年下半年开始,百度已经推出了原创保护功能和熊掌号平台,为此,我也提交了不少以前的老数据,而这些历史...

原创小博客 ⋅ 今天 ⋅ 0

LVM讲解、磁盘故障小案例

LVM LVM就是动态卷管理,可以将多个硬盘和硬盘分区做成一个逻辑卷,并把这个逻辑卷作为一个整体来统一管理,动态对分区进行扩缩空间大小,安全快捷方便管理。 1.新建分区,更改类型为8e 即L...

蛋黄Yolks ⋅ 今天 ⋅ 0

Hadoop Yarn调度器的选择和使用

一、引言 Yarn在Hadoop的生态系统中担任了资源管理和任务调度的角色。在讨论其构造器之前先简单了解一下Yarn的架构。 上图是Yarn的基本架构,其中ResourceManager是整个架构的核心组件,它负...

p柯西 ⋅ 今天 ⋅ 0

uWSGI + Django @ Ubuntu

创建 Django App Project 创建后, 可以看到路径下有一个wsgi.py的问题 uWSGI运行 直接命令行运行 利用如下命令, 可直接访问 uwsgi --http :8080 --wsgi-file dj/wsgi.py 配置文件 & 运行 [u...

袁祾 ⋅ 今天 ⋅ 0

JVM堆的理解

在JVM中,我们经常提到的就是堆了,堆确实很重要,其实,除了堆之外,还有几个重要的模块,看下图: 大 多数情况下,我们并不需要关心JVM的底层,但是如果了解它的话,对于我们系统调优是非常...

不羁之后 ⋅ 昨天 ⋅ 0

推荐:并发情况下:Java HashMap 形成死循环的原因

在淘宝内网里看到同事发了贴说了一个CPU被100%的线上故障,并且这个事发生了很多次,原因是在Java语言在并发情况下使用HashMap造成Race Condition,从而导致死循环。这个事情我4、5年前也经历...

码代码的小司机 ⋅ 昨天 ⋅ 2

聊聊spring cloud gateway的RetryGatewayFilter

序 本文主要研究一下spring cloud gateway的RetryGatewayFilter GatewayAutoConfiguration spring-cloud-gateway-core-2.0.0.RC2-sources.jar!/org/springframework/cloud/gateway/config/G......

go4it ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部