comparison SqliteDBLink.cpp @ 90:7b7a959c993b

Prepare some more queries.
author Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
date Mon, 21 Oct 2013 16:20:38 +0200
parents 6e1d4d2fc49b
children f49023c61dac
comparison
equal deleted inserted replaced
89:cfd2a417475a 90:7b7a959c993b
38 preparedSizePrefixQuery = new QSqlQuery(db); 38 preparedSizePrefixQuery = new QSqlQuery(db);
39 preparedSizePrefixQuery->prepare("SELECT * FROM files WHERE path LIKE :prefix AND size = :size"); 39 preparedSizePrefixQuery->prepare("SELECT * FROM files WHERE path LIKE :prefix AND size = :size");
40 40
41 preparedSizeQuery = new QSqlQuery(db); 41 preparedSizeQuery = new QSqlQuery(db);
42 preparedSizeQuery->prepare("SELECT * FROM files WHERE size = :size"); 42 preparedSizeQuery->prepare("SELECT * FROM files WHERE size = :size");
43
44 preparedTryAddQuery = new QSqlQuery(db);
45 preparedTryAddQuery->prepare("INSERT INTO files (path, size, mtime, checksum)"
46 " VALUES (:path, :size, :mtime, :checksum)");
43 47
44 } 48 }
45 49
46 SqliteDBLink::~SqliteDBLink() 50 SqliteDBLink::~SqliteDBLink()
47 { 51 {
88 92
89 bool SqliteDBLink::tryAddFile(const DBInfo& dbinfo) 93 bool SqliteDBLink::tryAddFile(const DBInfo& dbinfo)
90 { 94 {
91 if (exists(dbinfo.path())) 95 if (exists(dbinfo.path()))
92 return false; 96 return false;
93 QSqlQuery query(db); 97 preparedTryAddQuery->bindValue(":path", dbinfo.path());
94 query.prepare("INSERT INTO files (path, size, mtime, checksum) " 98 preparedTryAddQuery->bindValue(":size", dbinfo.size());
95 "VALUES (:path, :size, :mtime, :checksum)"); 99 preparedTryAddQuery->bindValue(":mtime", dbinfo.mtime());
96 query.bindValue(":path", dbinfo.path()); 100 preparedTryAddQuery->bindValue(":checksum", dbinfo.checksum());
97 query.bindValue(":size", dbinfo.size()); 101 if (!preparedTryAddQuery->exec()) {
98 query.bindValue(":mtime", dbinfo.mtime()); 102 throw SQLException(*preparedTryAddQuery);
99 query.bindValue(":checksum", dbinfo.checksum());
100 if (!query.exec()) {
101 throw SQLException(query);
102 } 103 }
103 return true; 104 return true;
104 } 105 }
105 106
106 void SqliteDBLink::updateFile(const QString& path, 107 void SqliteDBLink::updateFile(const QString& path,