From kde-commits Fri Nov 20 19:34:46 2009 From: Holger Foerster Date: Fri, 20 Nov 2009 19:34:46 +0000 To: kde-commits Subject: branches/extragear/graphics/digikam/1.0-databaseext/libs/database Message-Id: <1258745686.205133.28412.nullmailer () svn ! kde ! org> X-MARC-Message: https://marc.info/?l=kde-commits&m=125874571111573 SVN commit 1052099 by foerster: Also perform a connection checking at the query prepare method. M +19 -5 databasecorebackend.cpp --- branches/extragear/graphics/digikam/1.0-databaseext/libs/database/databasecorebackend.cpp #1052098:1052099 @@ -900,13 +900,27 @@ SqlQuery DatabaseCoreBackend::prepareQuery(const QString& sql) { - SqlQuery query = getQuery(); - bool result = query.prepare(sql); - if (!result) + Q_D(DatabaseCoreBackend); + int retries=0; + forever { - kDebug(50003) << "Prepare failed! Details: " << query.lastError(); + SqlQuery query = getQuery(); + if (query.prepare(sql)) + return query; + else + { + kDebug(50003) << "Prepare failed! Details: " << query.lastError(); + if (queryErrorHandling(query, retries++)) + { + // TODO reopen the database + d->closeDatabaseForThread(); + query = copyQuery(query); + continue; + } + else + return query; + } } - return query; } SqlQuery DatabaseCoreBackend::copyQuery(const SqlQuery& old)