summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/dal/sqlitedataprovider.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/dal/sqlitedataprovider.cpp b/src/dal/sqlitedataprovider.cpp
index a47c9862..cc698f61 100644
--- a/src/dal/sqlitedataprovider.cpp
+++ b/src/dal/sqlitedataprovider.cpp
@@ -365,25 +365,27 @@ const RecordSet &SqLiteDataProvider::processSql()
throw std::runtime_error("not connected to database");
int totalCols = sqlite3_column_count(mStmt);
+
+ // ensure we set column headers before adding a row
Row fieldNames;
+ for (int col = 0; col < totalCols; ++col)
+ {
+ fieldNames.push_back(sqlite3_column_name(mStmt, col));
+ }
+ mRecordSet.setColumnHeaders(fieldNames);
while (sqlite3_step(mStmt) == SQLITE_ROW)
{
Row r;
for (int col = 0; col < totalCols; ++col)
{
- fieldNames.push_back(sqlite3_column_name(mStmt, col));
const unsigned char *txt = sqlite3_column_text(mStmt, col);
r.push_back(txt ? (char*)txt : std::string());
}
- // ensure we set column headers before adding a row
- mRecordSet.setColumnHeaders(fieldNames);
mRecordSet.add(r);
}
-
-
sqlite3_finalize(mStmt);
return mRecordSet;