@@ -23,18 +23,20 @@ bool CFavoriteDatabase::OnInitializeSqliteDatabase()
2323 QSqlQuery query (GetDatabase ());
2424
2525 // Create favorite table
26- bool success = query. exec (
26+ QString szSql =
2727 " CREATE TABLE IF NOT EXISTS favorite ("
2828 " id INTEGER PRIMARY KEY AUTOINCREMENT," // the id is the key of tree table
2929 " name TEXT NOT NULL,"
3030 " icon INTEGER DEFAULT 0,"
3131 " file TEXT UNIQUE NOT NULL,"
3232 " description TEXT"
33- " )"
34- );
33+ " )" ;
34+ bool success = query. exec (szSql );
3535
3636 if (!success) {
37- qCritical (log) << " Failed to create favorite table:" << query.lastError ().text ();
37+ SetError (" Failed to create favorite table: " + query.lastError ().text ()
38+ + " ; Sql: " + szSql);
39+ qCritical (log) << GetError ();
3840 return false ;
3941 }
4042
@@ -49,7 +51,7 @@ bool CFavoriteDatabase::OnInitializeSqliteDatabase()
4951 qDebug (log) << " Failed to drop trigger delete_icon_after_favorite:" << query.lastError ().text ();
5052 }
5153 // Create trigger
52- QString szSql = R"(
54+ szSql = R"(
5355 CREATE TRIGGER delete_icon_after_favorite
5456 AFTER DELETE ON favorite
5557 FOR EACH ROW
@@ -79,20 +81,21 @@ bool CFavoriteDatabase::OnInitializeMySqlDatabase()
7981 QSqlQuery query (GetDatabase ());
8082
8183 // Create favorite table
82- success = query. exec (
84+ QString szSql =
8385 " CREATE TABLE IF NOT EXISTS favorite ("
8486 " id INTEGER PRIMARY KEY AUTO_INCREMENT," // the id is the key of tree table
8587 " name TEXT NOT NULL,"
8688 " icon INTEGER DEFAULT 0,"
8789 " file TEXT NOT NULL,"
8890 " description TEXT,"
8991 " UNIQUE KEY uk_favorite_file (file(255))"
90- " )"
91- );
92+ " )" ;
93+ success = query. exec (szSql );
9294 if (!success) {
93- qCritical (log) << " Failed to create favorite table:"
94- << query.lastError ().text ()
95- << " Sql:" << query.executedQuery ();
95+ SetError (" Failed to create favorite table: "
96+ + query.lastError ().text ()
97+ + " ; Sql: " + szSql);
98+ qCritical (log) << GetError ();
9699 return false ;
97100 }
98101
@@ -103,7 +106,7 @@ bool CFavoriteDatabase::OnInitializeMySqlDatabase()
103106 << " Sql:" << query.executedQuery ();
104107 }
105108 // Create trigger
106- QString szSql = R"(
109+ szSql = R"(
107110 CREATE TRIGGER delete_icon_after_favorite
108111 AFTER DELETE ON favorite
109112 FOR EACH ROW
@@ -177,7 +180,8 @@ int CFavoriteDatabase::AddFavorite(const QString &szFile,
177180 bool success = false ;
178181 // 使用事务确保数据一致性
179182 if (!db.transaction ()) {
180- qCritical (log) << " Failed to start transaction:" << db.lastError ().text ();
183+ SetError (" Failed to start transaction: " + db.lastError ().text ());
184+ qCritical (log) << GetError ();
181185 return ret;
182186 }
183187
@@ -208,15 +212,13 @@ int CFavoriteDatabase::AddFavorite(const QString &szFile,
208212 if (!success) {
209213 QString szErr = " Failed to insert favorite table: " + query.lastError ().text ();
210214 SetError (szErr);
211- qCritical (log) << szErr;
212215 throw std::runtime_error (szErr.toStdString ());
213216 }
214217
215218 key = query.lastInsertId ().toInt ();
216219 if (0 >= key) {
217220 QString szErr = " Failed to insert favorite table" ;
218221 SetError (szErr);
219- qCritical (log) << szErr;
220222 throw std::runtime_error (szErr.toStdString ());
221223 }
222224 }
@@ -229,15 +231,13 @@ int CFavoriteDatabase::AddFavorite(const QString &szFile,
229231 if (0 >= id) {
230232 QString szErr = " Failed to insert favorite folder table" ;
231233 SetError (szErr);
232- qCritical (log) << szErr;
233234 throw std::runtime_error (szErr.toStdString ());
234235 }
235236
236237 // 提交事务
237238 if (!db.commit ()) {
238239 QString szErr = " Failed to commit transaction:" + db.lastError ().text ();
239240 SetError (szErr);
240- qCritical (log) << szErr;
241241 throw std::runtime_error (szErr.toStdString ());
242242 }
243243
@@ -277,10 +277,11 @@ bool CFavoriteDatabase::UpdateFavorite(
277277 szSql = " UPDATE favorite SET " + szSql + " WHERE id=" + QString::number (id);
278278 // qDebug(log) << "Sql:" << szSql;
279279 bool ok = query.exec (szSql);
280- if (!ok)
281- qCritical (log) << " Failed to update favorite:"
282- << id << query.lastError ().text ()
283- << " Sql:" << szSql;
280+ if (!ok) {
281+ SetError (" Failed to update favorite: " + query.lastError ().text ()
282+ + " ; Sql: " + szSql);
283+ qCritical (log) << GetError ();
284+ }
284285 return ok;
285286}
286287
@@ -306,10 +307,11 @@ bool CFavoriteDatabase::UpdateFavorite(
306307 szSql = " UPDATE favorite SET " + szSql + " WHERE file=\" " + szFile + " \" " ;
307308 // qDebug(log) << "Sql:" << szSql;
308309 bool ok = query.exec (szSql);
309- if (!ok)
310- qCritical (log) << " Failed to update favorite:"
311- << szFile << query.lastError ().text ()
312- << " Sql:" << szSql;
310+ if (!ok) {
311+ SetError (" Failed to update favorite: " + query.lastError ().text ()
312+ + " ; Sql: " + szSql);
313+ qCritical (log) << GetError ();
314+ }
313315 return ok;
314316}
315317
@@ -330,9 +332,10 @@ CFavoriteDatabase::Item CFavoriteDatabase::GetFavorite(int id)
330332 // qDebug(log) << "Bound value:" << query.boundValues();
331333 bool ok = query.exec ();
332334 if (!ok) {
333- qCritical (log) << " Failed to get favorite:"
334- << id << query.lastError ().text ()
335- << " Sql:" << query.executedQuery ();
335+ SetError (" Failed to get favorite: " + query.lastError ().text ()
336+ + " ; Sql: " + query.executedQuery ()
337+ + " ; id: " + QString::number (id));
338+ qCritical (log) << GetError ();
336339 return item;
337340 }
338341 if (query.next ()) {
@@ -362,9 +365,9 @@ QList<CFavoriteDatabase::Item> CFavoriteDatabase::GetFavorite(const QString &szF
362365 // qDebug(log) << "Bound value:" << query.boundValues();
363366 bool ok = query.exec ();
364367 if (!ok) {
365- qCritical (log) << " Failed to get favorite:"
366- << szFile << query. lastError (). text ()
367- << " Sql: " << query. executedQuery ();
368+ SetError ( " Failed to get favorite: " + query. lastError (). text ()
369+ + " ; Sql: " + query. executedQuery () + " ; szFile: " + szFile);;
370+ qCritical (log) << GetError ();
368371 return lstItems;
369372 }
370373 if (query.next ()) {
@@ -427,9 +430,10 @@ bool CFavoriteDatabase::OnDeleteKey(int key)
427430 // qDebug(log) << "Bound value:" << query.boundValues();
428431 bool ok = query.exec ();
429432 if (!ok) {
430- qCritical (log) << " Failed to delete favorite:"
431- << key << query.lastError ().text ()
432- << " Sql:" << query.executedQuery ();
433+ SetError (" Failed to delete favorite: " + query.lastError ().text ()
434+ + " ; Sql: " + query.executedQuery ()
435+ + " ; key: " + QString::number (key));
436+ qCritical (log) << GetError ();
433437 return false ;
434438 }
435439 return ok;
@@ -449,7 +453,8 @@ bool CFavoriteDatabase::ImportFromJson(const QJsonObject &obj)
449453{
450454 QJsonArray favorites = obj[" favorite" ].toArray ();
451455 if (favorites.isEmpty ()) {
452- qCritical (log) << " The file format is error. Json without favorite" ;
456+ SetError (tr (" The file format is error. Json without favorite" ));
457+ qCritical (log) << GetError ();
453458 return false ;
454459 }
455460
0 commit comments