[KPhotoAlbum] error while executing the SQL backend command

Jesper K. Pedersen blackie at kde.org
Sat Jun 6 13:35:47 CEST 2009


Awesome, thanks!
I'll have a look a bit later today, and apply it.

Thanks
Jesper.

On Saturday 06 June 2009 13:30:23 Bart Visscher wrote:
| Hi,
|
| I used the following patch to get rid of the exif sql errors. The first 2
| hunks are to get the filename correctly in the sqlite db. I checked it with
| sqlitebrowser, and it now shows the filename. Before there was multibyte
| encoding garbage. I don't know how to do it correctly maybe the Qt code
| does a fixup.
|
| The last part skips non images because Exiv2::ImageFactory::open gives an
| exception for avi files that are in my collection.
|
| Bart Visscher
|
| Index: Exif/Database.cpp
| ===================================================================
| --- Exif/Database.cpp	(revision 978187)
| +++ Exif/Database.cpp	(working copy)
| @@ -168,7 +169,7 @@
|          return;
|
|      QSqlQuery query( QString::fromLatin1( "DELETE FROM exif WHERE
| fileName=?" ), _db ); -    query.bindValue( 0, _doUTF8Conversion ?
| fileName.toUtf8() : fileName.toLatin1() ); +    query.bindValue( 0,
| fileName );
|      if ( !query.exec() )
|          showError( query );
|  }
| @@ -185,7 +186,7 @@
|      }
|
|      QSqlQuery query( QString::fromLatin1( "INSERT into exif values (?, %1)
| " ).arg( formalList.join( QString::fromLatin1( ", " ) ) ), _db ); -   
| query.bindValue(  0, _doUTF8Conversion ? filename.toUtf8() :
| filename.toLatin1() ); +    query.bindValue(  0, filename );
|      int i = 1;
|      for( DatabaseElementList::Iterator tagIt = elms.begin(); tagIt !=
| elms.end(); ++tagIt ) { (*tagIt)->bindValues( &query, i, data );
| @@ -314,7 +315,9 @@
|      bool success = true;
|      Q_FOREACH(const DB::ImageInfoPtr info, allImages.fetchInfos()) {
|          dialog.setValue(i++);
| -        success &= add(info->fileName(DB::AbsolutePath));
| +        if (info->mediaType() == DB::Image) {
| +            success &= add(info->fileName(DB::AbsolutePath));
| +        }
|          if ( i % 10 )
|              qApp->processEvents();
|          if (!success || dialog.wasCanceled())

-- 
Having trouble finding a given image in your collection containing
thousands of images?

http://www.kphotoalbum.org might be the answer.



More information about the KPhotoAlbum mailing list