summaryrefslogtreecommitdiff
path: root/lib/input/mysqlRecordSet.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/input/mysqlRecordSet.cpp')
-rw-r--r--lib/input/mysqlRecordSet.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/input/mysqlRecordSet.cpp b/lib/input/mysqlRecordSet.cpp
index 22b7214..71c5148 100644
--- a/lib/input/mysqlRecordSet.cpp
+++ b/lib/input/mysqlRecordSet.cpp
@@ -72,7 +72,6 @@ namespace MyGrate::Input {
verify<MySQLErr>(!mysql_stmt_bind_result(stmt.get(), fields.data()), "Store result error", stmt->mysql);
verify<MySQLErr>(!mysql_stmt_store_result(stmt.get()), "Store result error", stmt->mysql);
stmtres = {stmt.get(), mysql_stmt_free_result};
- verify<MySQLErr>(!mysql_stmt_fetch(stmt.get()), "Fetch", stmt->mysql);
}
std::size_t
@@ -90,7 +89,11 @@ namespace MyGrate::Input {
DbValue
MySQLRecordSet::at(std::size_t row, std::size_t col) const
{
- mysql_stmt_data_seek(stmt.get(), row);
+ if (currentRow != row) {
+ mysql_stmt_data_seek(stmt.get(), row);
+ verify<MySQLErr>(!mysql_stmt_fetch(stmt.get()), "Fetch", stmt->mysql);
+ currentRow = row;
+ }
if (extras[col]->null) {
return nullptr;
}