-
UID:123618
-
- 注册时间2011-10-25
- 最后登录2014-08-12
- 在线时间79小时
-
- 发帖63
- 搜Ta的帖子
- 精华0
- 金钱630
- 威望73
- 贡献值0
- 好评度63
-
访问TA的空间加好友用道具
|
- #include <QSqlQuery>
- #include <QSqlDatabase>
- #include <QSqlError>
- #include <QVariant>
- #include <QApplication>
- #define CONN "test"
- void childOpen()
- {
- QSqlDatabase m_db;
- if(QSqlDatabase::contains(CONN))
- m_db = QSqlDatabase::database(CONN);
- else
- m_db = QSqlDatabase::addDatabase("QSQLITE", CONN);
- m_db.setDatabaseName("./test.db");
- qDebug("childOpen1 stat:%d", m_db.isOpen());
- }
- void parentOpen1()
- {
- QSqlDatabase m_db;
- if(QSqlDatabase::contains(CONN))
- m_db = QSqlDatabase::database(CONN);
- else
- m_db = QSqlDatabase::addDatabase("QSQLITE", CONN);
- m_db.setDatabaseName("./test.db");
- m_db.open();
- qDebug("parentOpen1 stat:%d", m_db.isOpen());
- //childOpen(); // 注释1:该函数如果调用,childOpen1输出数据库状态为打开。
- m_db.close();
- //childOpen(); // 注释2:该函数如果调用,childOpen1输出数据库状态为打开,且下面的parentOpen1的数据库打开状态为真
- qDebug("parentOpen1 stat:%d", m_db.isOpen());
- }
- int main(int argc, char ** argv)
- {
- QApplication app(argc, argv);
- parentOpen1();
- return app.exec();
- }
这是实际执行结果: 只执行注释1的话,输出结果: parentOpen1 stat:1 childOpen1 stat:1 parentOpen1 stat:0
只执行注释2的话,输出结果: parentOpen1 stat:1 childOpen1 stat:1 parentOpen1 stat:1
2个注释都执行的话,输出结果: parentOpen1 stat:1 childOpen1 stat:1 childOpen1 stat:1 parentOpen1 stat:1 以下为楼主预想结果:只执行注释1的话,输出结果: parentOpen1 stat:1 childOpen1 stat:0 parentOpen1 stat:0
只执行注释2的话,输出结果:
parentOpen1 stat:1 childOpen1 stat:0 parentOpen1 stat:0 2个注释都执行的话,输出结果:parentOpen1 stat:1childOpen1 stat:0childOpen1 stat:0parentOpen1 stat:0 请教下大家,这是为什么啊
|