| 
					
				 | 
			
			
				@@ -86,7 +86,8 @@ bool ADataBase::commit(AEntry entry) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 bool ADataBase::remove(AEntry entry) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (!exists(entry)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        DEB("Error: Entry does not exist."); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        DEB("Error: Database entry not found."); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        lastError = "Database Error: Database entry not found."; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -97,13 +98,14 @@ bool ADataBase::remove(AEntry entry) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (query.lastError().type() == QSqlError::NoError) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         DEB("Entry " << entry.getPosition().tableName << entry.getPosition().rowId << " removed."); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        emit deleteSuccessful(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        emit updated(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        lastError = QString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         DEB("Unable to delete."); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         DEB("Query: " << statement); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         DEB("Query Error: " << query.lastError().text()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        emit sqlError(query.lastError(), statement); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        lastError = query.lastError().text(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -117,7 +119,7 @@ bool ADataBase::removeMany(QList<DataPosition> data_position_list) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     for (const auto data_position : data_position_list) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (!exists(data_position)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            DEB("Error: Entry does not exist."); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            lastError = "Database Error: Database entry not found."; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             errorCount++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         QString statement = "DELETE FROM " + data_position.first + 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -134,16 +136,17 @@ bool ADataBase::removeMany(QList<DataPosition> data_position_list) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         query.prepare("COMMIT"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         query.exec(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if(query.lastError().type() == QSqlError::NoError) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            emit deleteSuccessful(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            emit updated(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            lastError = QString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            emit sqlError(query.lastError(), "Transaction unsuccessful. Error count: " + QString::number(errorCount)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            lastError = "Transaction unsuccessful (Interrupted). Error count: " + QString::number(errorCount); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         query.prepare("ROLLBACK"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         query.exec(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        emit sqlError(query.lastError(), "Transaction unsuccessful(rolled back). Error count: " + QString::number(errorCount)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        lastError = "Transaction unsuccessful (no changes have been made). Error count: " + QString::number(errorCount); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -162,8 +165,9 @@ bool ADataBase::exists(AEntry entry) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     query.exec(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     //this returns either 1 or 0 since row ids are unique 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (!query.isActive()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        emit sqlError(query.lastError(), statement); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        lastError = query.lastError().text(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         DEB("Query Error: " << query.lastError().text() << statement); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     query.next(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     int rowId = query.value(0).toInt(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -171,7 +175,8 @@ bool ADataBase::exists(AEntry entry) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         DEB("Entry " << entry.getPosition() << " exists."); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        DEB("Entry does not exist."); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        DEB("Database entry not found."); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        lastError = "Database Error: Database entry not found."; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -190,7 +195,7 @@ bool ADataBase::exists(DataPosition data_position) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     query.exec(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     //this returns either 1 or 0 since row ids are unique 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (!query.isActive()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        emit sqlError(query.lastError(), statement); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        lastError = query.lastError().text(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         DEB("Query Error: " << query.lastError().text() << statement); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     query.next(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -200,6 +205,7 @@ bool ADataBase::exists(DataPosition data_position) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         DEB("No entry exists at DataPosition: " << data_position); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        lastError = "Database Error: Database entry not found."; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -225,13 +231,14 @@ bool ADataBase::update(AEntry updated_entry) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (query.lastError().type() == QSqlError::NoError) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         DEB("Entry successfully committed."); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        emit commitSuccessful(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        emit updated(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        lastError = QString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         DEB("Unable to commit."); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         DEB("Query: " << statement); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         DEB("Query Error: " << query.lastError().text()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        emit sqlError(query.lastError(), statement); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        lastError = query.lastError().text(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -263,13 +270,14 @@ bool ADataBase::insert(AEntry new_entry) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (query.lastError().type() == QSqlError::NoError) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         DEB("Entry successfully committed."); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        emit commitSuccessful(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        emit updated(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        lastError = QString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         DEB("Unable to commit."); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         DEB("Query: " << statement); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         DEB("Query Error: " << query.lastError().text()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        emit sqlError(query.lastError(), statement); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        lastError = query.lastError().text(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -294,12 +302,14 @@ TableData ADataBase::getEntryData(DataPosition data_position) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (check_query.lastError().type() != QSqlError::NoError) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         DEB("SQL error: " << check_query.lastError().text()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         DEB("Statement: " << statement); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        lastError = check_query.lastError().text(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return TableData(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     check_query.next(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (check_query.value(0).toInt() == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         DEB("No Entry found for row id: " << data_position.second ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        lastError = "Database Error: Database entry not found."; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return TableData(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -316,6 +326,7 @@ TableData ADataBase::getEntryData(DataPosition data_position) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (select_query.lastError().type() != QSqlError::NoError) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         DEB("SQL error: " << select_query.lastError().text()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         DEB("Statement: " << statement); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        lastError = select_query.lastError().text(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return TableData(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -395,8 +406,10 @@ const QStringList ADataBase::getCompletionList(ADataBase::DatabaseTarget target) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     query.setForwardOnly(true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     query.exec(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if(!query.isActive()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        emit sqlError(query.lastError(), statement); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if(!query.isActive()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        lastError = query.lastError().text(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return QStringList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     QStringList completer_list; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     while (query.next()) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -445,7 +458,7 @@ const QMap<QString, int> ADataBase::getIdMap(ADataBase::DatabaseTarget target) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         DEB("No result found. Check Query and Error."); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         DEB("Query: " << statement); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         DEB("Error: " << query.lastError().text()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        emit sqlError(query.lastError(), statement); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        lastError = query.lastError().text(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return QMap<QString, int>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         QVector<QString> query_result; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -478,6 +491,7 @@ int ADataBase::getLastEntry(ADataBase::DatabaseTarget target) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (query.first()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return query.value(0).toInt(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        lastError = "Database Error: Database entry not found."; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         DEB("No entry found."); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -492,7 +506,7 @@ QVector<QString> ADataBase::customQuery(QString statement, int return_values) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         DEB("No result found. Check Query and Error."); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         DEB("Error: " << query.lastError().text()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         DEB("Statement: " << statement); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        emit sqlError(query.lastError(), statement); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        lastError = query.lastError().text(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return QVector<QString>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         query.first(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -503,7 +517,8 @@ QVector<QString> ADataBase::customQuery(QString statement, int return_values) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 result.append(query.value(i).toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        emit commitSuccessful(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        emit updated(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        lastError = QString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |