• 10075阅读
  • 4回复

QSqlDatabase::addDatabase()得到的是一个全局变量? [复制链接]

上一主题 下一主题
离线renr1981
 
只看楼主 倒序阅读 楼主  发表于: 2009-08-19
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
看了论坛里“BPMS美容院管理系统”的源码。其中在main.cpp里通过QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL")添加数据库,但是在其他类里,如mainwindow.cpp,通过QSqlDatabase::database()得到已经连接的数据库,难道QSqlDatabase::addDatabase()的返回值是一个全局变量?在一个类里定义后,在其他类里都可以访问?
只看该作者 1楼 发表于: 2011-11-10
不知到这个问题搂在解决了没有,我先在正在受这个问题所困扰
有缘相聚在这个论坛
离线realfan

只看该作者 2楼 发表于: 2011-11-21
首先要明确的一点,addDatabase和database都是静态函数.
调用addDatabase,会建立一个连接对象,保存在QSqlDatabase的链表中,这个链表当然也是静态成员.在任何地方,也可以通过另一个静态函数QSqlDatabase::database得到某个连接对象.都是静态的,生命期是全时的.可以在任何地方访问.
离线realfan

只看该作者 3楼 发表于: 2011-11-21
回 1楼(闪电侠风行) 的帖子
因为是静态函数.
离线dsfdsafdsa
只看该作者 4楼 发表于: 2012-02-06
快速回复
限100 字节
 
上一个 下一个