QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connection', old connect
2013-10-11 15:10
741 查看
QSqlDatabasePrivate::addDatabase: duplicate connection
name 'qt_sql_default_connection', old connection removed.
http://www.cppblog.com/seahouse/archive/2010/12/31/137131.html编译无问题,在执行时终端出现以下字母
QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connection', old connection removed.
QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connection', old connection removed.
执行中的数据库操作如下
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("C:/workspace/GData.s3db");
if(!db.open())
{
cout<<"open database failed!"<<endl;
return 0;
}
QSqlQuery query("select XmlValue from GBond where BondId=3", db);
if (query.next())
{
QString stringXml = query.value(0).toString();
//do something
}
db.close();
QSqlDatabase::removeDatabase("QSQLITE");
经查,是由于在数据库使用过程中,又再次调用QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); 造成了问题。
因此在其他地方的数据库操作中修改此代码。
可以在执行QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); 不用默认的defaultConnection,自己加入名字,然后在每次的添加时可改为:
QSqlDatabase db;
if(QSqlDatabase::contains("GBond"))
db = QSqlDatabase::database("GBond");
else
db = QSqlDatabase::addDatabase("QSQLITE", "GBond");
这样该问题已解决。
但再次执行时出现了
QSqlQuery::exec: database not open
QSqlQuery::exec: database not open
经查,这是由于在执行query.exec时没有指定db。将所有执行query.exec改为
//原来
QSqlQuery query;
query.exec("select XmlValue from GPlatform");
//改为
QSqlQuery query("select XmlValue from GPlatform", db);
这样就可以了。
posted on 2010-12-31 09:29 seahouse 阅读(2653) 评论(0) 编辑 收藏 引用 所属分类: Qt
相关文章推荐
- QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connection', old connect
- QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connection', old connect
- QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connection', old connect
- QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connection'解决办法
- QT开发:QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connection'...
- QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connection', old connect
- QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connection', old connect
- QT开发:QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connect...
- QSqlDatabasePrivate::removeDatabase: connection 'qt_sql_default_connection' is still in use
- pyqt Qtableview,duplicate connection name 'qt_sql_default_connection', old connection removed.
- SQL Server could not bring database 'db_name' online (sybase)
- 关于qt QSqlDatabase::database(connectionName) 和QNetworkAccessManager::post()导致卡死的情况
- java.sql.SQLNonTransientConnectionException: Database 'TempStatsStore' shutdown. java.sql.SQLExcept
- VS2010不能正确加载 'VSTS for Database Professionals Sql Server Data-tier Application'包解决方法
- 【mysql】【报错】Mysql外键名重复的错误:duplicate key in table '#sql-*'
- java.sql.BatchUpdateException: Data truncation: Data too long for column 'site_name' at row 1
- 一般c++编译出现"name lookup of '变量名' changed [enabled by default]"的警告
- ORA-01103: database name 'LCRO' in control file is not 'DUMMY'
- 异常详细信息: System.Data.SqlClient.SqlException:用户 'IIS APPPOOL\DefaultAppPool' 登录失败解决办法v
- SQL Databases Don't Scale