summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/dal/sqlitedataprovider.cpp14
-rw-r--r--src/dal/sqlitedataprovider.h2
2 files changed, 13 insertions, 3 deletions
diff --git a/src/dal/sqlitedataprovider.cpp b/src/dal/sqlitedataprovider.cpp
index 787088d1..b4feb3c6 100644
--- a/src/dal/sqlitedataprovider.cpp
+++ b/src/dal/sqlitedataprovider.cpp
@@ -381,21 +381,31 @@ const RecordSet &SqLiteDataProvider::processSql()
}
mRecordSet.setColumnHeaders(fieldNames);
- while (sqlite3_step(mStmt) == SQLITE_ROW)
+ int ret;
+
+ while (true)
{
+ ret = sqlite3_step(mStmt);
+ if (ret != SQLITE_ROW)
+ break;
+
Row r;
r.reserve(totalCols);
for (int col = 0; col < totalCols; ++col)
{
const unsigned char *txt = sqlite3_column_text(mStmt, col);
r.push_back(txt ? (char*)txt : std::string());
-
}
mRecordSet.add(r);
}
sqlite3_finalize(mStmt);
+ if (ret != SQLITE_DONE)
+ {
+ throw DbSqlQueryExecFailure(sqlite3_errmsg(mDb));
+ }
+
return mRecordSet;
}
diff --git a/src/dal/sqlitedataprovider.h b/src/dal/sqlitedataprovider.h
index 81e3a1d2..d78371f2 100644
--- a/src/dal/sqlitedataprovider.h
+++ b/src/dal/sqlitedataprovider.h
@@ -32,7 +32,7 @@ namespace dal
/**
* A SQLite Data Provider.
*/
-class SqLiteDataProvider: public DataProvider
+class SqLiteDataProvider final : public DataProvider
{
public:
SqLiteDataProvider()