[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: branches/extragear/graphics/digikam/1.0-databaseext
From: Holger Foerster <hamsi2k () freenet ! de>
Date: 2010-03-02 17:40:43
Message-ID: 1267551643.101538.2667.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 1098022 by foerster:
Move SQL statements to extern dbconfig.xml config file to provide specific \
statements.
M +51 -1 data/database/dbconfig.xml.cmake
M +8 -25 libs/database/albumdb.cpp
--- branches/extragear/graphics/digikam/1.0-databaseext/data/database/dbconfig.xml.cmake \
#1098021:1098022 @@ -245,6 +245,30 @@
END;</statement>
</dbaction>
+ <dbaction name="getItemURLsInAlbumByItemName" mode="transaction">
+ <statement mode="query">SELECT Albums.relativePath, Images.name FROM Images \
INNER JOIN Albums ON Albums.id=Images.album WHERE Albums.id=:albumID ORDER BY \
Images.name COLLATE NOCASE;</statement> + </dbaction>
+
+ <!--Don't collate on the path - this is to maintain the same behavior
+ that happens when sort order is "By Path"
+ -->
+ <dbaction name="getItemURLsInAlbumByItemPath" mode="transaction">
+ <statement mode="query">SELECT Albums.relativePath, Images.name FROM Images \
INNER JOIN Albums ON Albums.id=Images.album WHERE Albums.id=:albumID ORDER BY \
Albums.relativePath,Images.name;</statement> + </dbaction>
+
+ <dbaction name="getItemURLsInAlbumByItemDate" mode="transaction">
+ <statement mode="query">SELECT Albums.relativePath, Images.name FROM Images \
INNER JOIN Albums ON Albums.id=Images.album INNER JOIN ImageInformation ON \
ImageInformation.imageid=Images.id WHERE Albums.id=:albumID ORDER BY \
ImageInformation.creationDate;</statement> + </dbaction>
+
+ <dbaction name="getItemURLsInAlbumByItemRating" mode="transaction">
+ <statement mode="query">SELECT Albums.relativePath, Images.name FROM Images \
INNER JOIN Albums ON Albums.id=Images.album INNER JOIN ImageInformation ON \
ImageInformation.imageid=Images.id WHERE Albums.id=:albumID ORDER BY \
ImageInformation.rating DESC;</statement> + </dbaction>
+
+ <dbaction name="getItemURLsInAlbumNoItemSorting" mode="transaction">
+ <statement mode="query">SELECT Albums.relativePath, Images.name FROM Images \
INNER JOIN Albums ON Albums.id=Images.album WHERE Albums.id=:albumID;</statement> \
+ </dbaction> +
+
<dbaction name="InsertTag" mode="transaction">
<statement mode="query">INSERT INTO Tags (pid, name) VALUES( :tagPID, \
:tagname);</statement> </dbaction>
@@ -645,7 +669,33 @@
WHERE node.lft BETWEEN parent.lft AND parent.rgt
ORDER BY parent.lft;
END;</statement>
- </dbaction>
+ </dbaction>
+
+ <dbaction name="getItemURLsInAlbumByItemName" mode="transaction">
+ <statement mode="query">SELECT Albums.relativePath, Images.name FROM Images \
INNER JOIN Albums ON Albums.id=Images.album WHERE Albums.id=:albumID ORDER BY \
Images.name;</statement> + </dbaction>
+
+ <!--Don't collate on the path - this is to maintain the same behavior
+ that happens when sort order is "By Path"
+ -->
+ <dbaction name="getItemURLsInAlbumByItemPath" mode="transaction">
+ <statement mode="query">SELECT Albums.relativePath, Images.name FROM Images \
INNER JOIN Albums ON Albums.id=Images.album WHERE Albums.id=:albumID ORDER BY \
Albums.relativePath,Images.name;</statement> + </dbaction>
+
+ <dbaction name="getItemURLsInAlbumByItemDate" mode="transaction">
+ <statement mode="query">SELECT Albums.relativePath, Images.name FROM Images \
INNER JOIN Albums ON Albums.id=Images.album INNER JOIN ImageInformation ON \
ImageInformation.imageid=Images.id WHERE Albums.id=:albumID ORDER BY \
ImageInformation.creationDate;</statement> + </dbaction>
+
+ <dbaction name="getItemURLsInAlbumByItemRating" mode="transaction">
+ <statement mode="query">SELECT Albums.relativePath, Images.name FROM Images \
INNER JOIN Albums ON Albums.id=Images.album INNER JOIN ImageInformation ON \
ImageInformation.imageid=Images.id WHERE Albums.id=:albumID ORDER BY \
ImageInformation.rating DESC;</statement> + </dbaction>
+
+ <dbaction name="getItemURLsInAlbumNoItemSorting" mode="transaction">
+ <statement mode="query">SELECT Albums.relativePath, Images.name FROM Images \
INNER JOIN Albums ON Albums.id=Images.album WHERE Albums.id=:albumID;</statement> \
+ </dbaction> +
+
+
<dbaction name="InsertTag" mode="transaction">
<statement mode="plain">LOCK TABLE Tags WRITE;</statement>
<statement mode="query">SELECT @myLeft := lft FROM Tags WHERE id = \
:tagPID;</statement>
--- branches/extragear/graphics/digikam/1.0-databaseext/libs/database/albumdb.cpp \
#1098021:1098022 @@ -2563,47 +2563,30 @@
if (albumRootPath.isNull())
return QStringList();
- //TODO lets define SQL actions within dbconfig.xml
- QString sqlString;
+ QMap<QString, QVariant> bindingMap;
+ bindingMap.insert(QString(":albumID"), albumID);
+
switch(sortOrder)
{
case ByItemName:
- sqlString = QString("SELECT Albums.relativePath, Images.name "
- "FROM Images INNER JOIN Albums ON \
Albums.id=Images.album "
- "WHERE Albums.id=? "
- "ORDER BY Images.name;"); // COLLATE NOCASE
+ d->db->execDBAction(d->db->getDBAction(QString("getItemURLsInAlbumByItemName")), \
bindingMap, &values); break;
case ByItemPath:
// Don't collate on the path - this is to maintain the same behavior
// that happens when sort order is "By Path"
- sqlString = QString("SELECT Albums.relativePath, Images.name "
- "FROM Images INNER JOIN Albums ON \
Albums.id=Images.album "
- "WHERE Albums.id=? "
- "ORDER BY Albums.relativePath,Images.name;");
+ d->db->execDBAction(d->db->getDBAction(QString("getItemURLsInAlbumByItemPath")), \
bindingMap, &values); break;
case ByItemDate:
- sqlString = QString("SELECT Albums.relativePath, Images.name "
- "FROM Images INNER JOIN Albums ON \
Albums.id=Images.album "
- " INNER JOIN ImageInformation ON \
ImageInformation.imageid=Images.id "
- "WHERE Albums.id=? "
- "ORDER BY ImageInformation.creationDate;");
+ d->db->execDBAction(d->db->getDBAction(QString("getItemURLsInAlbumByItemDate")), \
bindingMap, &values); break;
case ByItemRating:
- sqlString = QString("SELECT Albums.relativePath, Images.name "
- "FROM Images INNER JOIN Albums ON \
Albums.id=Images.album "
- " INNER JOIN ImageInformation ON \
ImageInformation.imageid=Images.id "
- "WHERE Albums.id=? "
- "ORDER BY ImageInformation.rating DESC;");
+ d->db->execDBAction(d->db->getDBAction(QString("getItemURLsInAlbumByItemRating")), \
bindingMap, &values); break;
case NoItemSorting:
default:
- sqlString = QString("SELECT Albums.relativePath, Images.name "
- "FROM Images INNER JOIN Albums ON \
Albums.id=Images.album "
- "WHERE Albums.id=?;");
+ d->db->execDBAction(d->db->getDBAction(QString("getItemURLsInAlbumNoItemSorting")), \
bindingMap, &values); break;
}
- // all statements take one bound value
- d->db->execSql(sqlString, albumID, &values);
QStringList urls;
QString relativePath, name;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic