zoukankan      html  css  js  c++  java
  • 很好的QSqlDatabase问题说明,关于连接错误(转)

    QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connection', old connection removed.

    编译无问题,在执行时终端出现以下字母

    QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connection', old connection removed.
    QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connection', old connection removed.

    执行中的数据库操作如下
    QT数据库错误    QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
    QT数据库错误
    QT数据库错误    db.setDatabaseName("C:/workspace/GData.s3db");
    QT数据库错误    if(!db.open())
    QT数据库错误    {
    QT数据库错误        cout<<"open database failed!"<<endl;
    QT数据库错误        return 0;
    QT数据库错误     }
    QT数据库错误    QSqlQuery query("select XmlValue from GBond where BondId=3", db);
    QT数据库错误
    QT数据库错误    if (query.next())
    QT数据库错误    {
    QT数据库错误        QString stringXml = query.value(0).toString();
    QT数据库错误
    QT数据库错误        //do somethingQT数据库错误
    QT数据库错误

    QT数据库错误     }
    QT数据库错误
    QT数据库错误    db.close();
    QT数据库错误    QSqlDatabase::removeDatabase("QSQLITE");

    经查,是由于在数据库使用过程中,又再次调用QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); 造成了问题。
    因此在其他地方的数据库操作中修改此代码。

    可以在执行QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); 不用默认的defaultConnection,自己加入名字,然后在每次的添加时可改为:
    QT数据库错误    QSqlDatabase db;
    QT数据库错误    if(QSqlDatabase::contains("GBond"))
    QT数据库错误        db = QSqlDatabase::database("GBond");
    QT数据库错误    else
    QT数据库错误        db = QSqlDatabase::addDatabase("QSQLITE", "GBond");

    这样该问题已解决。

    但再次执行时出现了
    QSqlQuery::exec: database not open
    QSqlQuery::exec: database not open

    经查,这是由于在执行query.exec时没有指定db。将所有执行query.exec改为
    QT数据库错误//原来
    QT数据库错误
    QSqlQuery query;
    QT数据库错误query.exec("select XmlValue from GPlatform");
    QT数据库错误
    QT数据库错误//改为
    QT数据库错误

    QT数据库错误QSqlQuery query("select XmlValue from GPlatform", db);

    这样就可以了。
    感谢原作者,转:http://blog.sina.com.cn/s/blog_82544279010128iu.html
  • 相关阅读:
    ural 1146. Maximum Sum(动态规划)
    ural 1119. Metro(动态规划)
    ural 1013. K-based Numbers. Version 3(动态规划)
    Floyd算法
    杭电21题 Palindrome
    杭电20题 Human Gene Functions
    杭电15题 The Cow Lexicon
    杭电三部曲一、基本算法;19题 Cow Bowling
    杭电1002 Etaoin Shrdlu
    Qt 学习之路 2(37):文本文件读写
  • 原文地址:https://www.cnblogs.com/yanhuiw/p/3705399.html
Copyright © 2011-2022 走看看