[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    branches/extragear/graphics/digikam/1.0-databaseext/libs/database
From:       Holger Foerster <hamsi2k () freenet ! de>
Date:       2009-11-20 19:34:46
Message-ID: 1258745686.205133.28412.nullmailer () svn ! kde ! org
[Download RAW message or body]

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)


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic